CentOS 7 从头搭建LNMP环境

1 准备工作

        保证系统已安装gcc、g++,没有安装的话通过以下命令安装:

        yum install gcc gcc-c++

2 安装nginx

        安装nginx依赖包,如Rewrite模块和HTTP核心模块会使用到的PCRE正则表达式解析、需要使用gzip压缩、安全套接字层SSL:
        yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

        下载openssl的源码包并解压
        wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
        tar -zxvf openssl-1.1.0h.tar.gz

        下载nginx包并解压
        wget http://nginx.org/download/nginx-1.14.0.tar.gz
        tar -zxvf nginx-1.14.0.tar.gz

        编译安装到/usr/local/nginx
        cd nginx-1.14.0
        ./configure --prefix=/usr/local/nginx --with-openssl=../openssl-1.1.0h
        make
        make install

        创建并设置nginx运行账号
        groupadd nginx
        useradd -M -g nginx -s /sbin/nologin nginx

        修改/usr/local/nginx/conf/nginx.conf,设置user参数如下,其他配置参数暂时无需改动。
        user nginx nginx

        设置nginx为系统服务,新建/lib/systemd/system/nginx.service,内容如下:

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

        设置nginx开机自启动
        systemctl enable nginx.service

        开启nginx服务:
        systemctl start nginx.service

        查看nginx是否启动成功:
        ps aux | grep nginx

        防火墙开放80端口
        firewall-cmd --zone=public --add-port=80/tcp --permanent

        重启防火墙
        firewall-cmd --reload

3 安装MySQL

        下载 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz,并解压到/usr/local/mysql下
        tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
        mv mysql-5.7.22 /usr/local/mysql

        建立mysql相关的用户和组,-s /sbin/nologin用于阻止用户登录
        groupadd mysql
        useradd -M -s /sbin/nologin -g mysql mysql
        chown -R mysql .
        chgrp -R mysql .

        初始化数据
        cd /usr/local/mysql
        bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize

        在初始化时如果加上 --initial-insecure,则会创建空密码的 root@localhost 账号;--secure-file-priv 指定密码文件夹位置 对应文件夹下就会有 .mysql_secret 文件。

        配置mysql服务
        cp support-files/mysql.server /etc/init.d/mysqld
        cp support-files/my-default.cnf /etc/my.cnf
        在/etc/init.d/mysqld和/etc/my.cnf中都添加
        basedir = /usr/local/mysql/
        datadir = /usr/local/mysql/data

        启动mysql服务
        service mysqld start
        
        ******
        另外一种配置mysql服务的方法是,新建文件 /lib/systemd/system/mysql.service,内容如下:

[Unit]
Description=mysql
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecRestart=/usr/local/mysql/support-files/mysql.server restart
ExecReload=/usr/local/mysql/support-files/mysql.server reload
PrivateTmp=true

[Install]
WantedBy=multi-user.target

        设置mysql服务开机自启动
        systemctl enable mysql.service

        启动mysql
        systemctl start mysql.service

        查看mysql状态
        systemctl status mysql.service
        
        如果启动失败,直接执行/usr/local/mysql/support-files/mysql.server restart,可以看到详细错误原因。       
        ******
        登录mysql,修改root用户密码
        mysql -u root -p
        SET PASSWORD = PASSWORD('123456');

4 安装PHP

        安装php依赖包
      yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel

        下载php包并解压
        tar -zxvf php-7.2.8.tar.gz

        编译安装(到/usr/local/php目录)
        cd php-7.2.0
  ./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/tmp/mysql/mysql.sock --without-pear  --enable-bcmath

        (注意:php7不再使用mysql的库来支持mysql的连接,而是启用了mysqlnd来支持,所以php7的编译已经不再使用--with-mysql参数指定mysql的安装位置了,若想支持mysql,需要设置--enable-mysqlnd、--with-mysqli和--with-pdo-mysql=mysqlnd参数,--with-mysql-sock指定的是mysql的UNIX套接字文件的位置)

        make
        make install

        将php包解压目录中的配置文件放置到正确位置(configure命令中的--with-config-file-path设置的位置)
        cp php.ini-production /etc/php.ini

        设置php-fpm运行账号,统一使用nginx的账号,如果用其他账号会有权限问题,解决起来比较麻烦。
        cd /usr/local/php/etc
        cp php-fpm.conf.default php-fpm.conf
        cd php-fpm.d
        cp www.conf.default www.conf

        搜索“user”设置运行账号:
        user=nginx
        group=nginx
        
        配置nginx支持php,修改/usr/local/nginx/conf/nginx.conf,启用rewrite:


        
        修改完成之后记得重启nginx服务:
        systemctl start nginx.service
        
        设置php-fpm为系统服务,新建文件 /lib/systemd/system/php-fpm.service,文件内容如下:

[Unit]
Description=php-fpm
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
PrivateTmp=True

[Install]
WantedBy=multi-user.target

        设置php-fpm服务开机自启动:
        systemctl enable php-fpm.service

        启动php-fpm:
        systemctl start php-fpm.service

        查看是否启动成功:
        ps aux | grep php-fpm

        编写phpinfo.php脚本测试nginx是否已支持php,php是否已支持mysql。

<?php
phpinfo();
?>

        至此,LNMP搭建完成!

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值