美文网首页
LNMP环境搭建(Nginx1.14.1+PHP7.2.12+M

LNMP环境搭建(Nginx1.14.1+PHP7.2.12+M

作者: kxmile | 来源:发表于2018-11-30 16:50 被阅读0次

    首先声明环境是CentOS 7.5 64位
    安装顺序为nginx,php,mysql
    登录账号为root

    第一步安装nginx

    安装make
    yum -y install gcc automake autoconf libtool make
    安装c++编译器
    yum -y install gcc gcc-c++
    安装pcre,为了重写rewrite

    #进入目录
    cd /usr/local/src/
    #下载pcre-8.42包
    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
    #解压
    tar zxvf pcre-8.42.tar.gz  
    # 进入解压包
    cd /usr/local/src/pcre-8.42
    #预编译
    ./configure
    #编译
    make
    # 安装
     sudo make install
    

    安装zlib库,为了gzip压缩

    #进入目录
    cd /usr/local/src/
    #获取资源包
    wget http://zlib.net/zlib-1.2.11.tar.gz
    #解压
    tar zxvf zlib-1.2.11.tar.gz 
    # 进入目录
    cd /usr/local/src/zlib-1.2.11/
    #预编译
    ./configure
    #编译
    make
    #安装
    sudo make install
    

    安装openssl

    #进入目录
    cd /usr/local/src/
    #获取资源
    wget https://www.openssl.org/source/openssl-1.0.2q.tar.gz
    #解压
     tar zxvf openssl-1.0.2q.tar.gz
    #进入目录
    cd /usr/local/src/openssl-1.0.2q/
    #预编译
    ./config 
    #编译
    make
    #安装
    sudo make install
    

    安装nginx

    cd /usr/local/src/
    #获取资源包
    wget http://nginx.org/download/nginx-1.14.1.tar.gz
    #解压
     tar zxvf nginx-1.14.1.tar.gz
    cd /usr/local/src/nginx-1.14.1/
    #预编译
    ./configure --sbin-path=/usr/local/nginx/nginx \
    --conf-path=/usr/local/nginx/nginx.conf \
    --pid-path=/usr/local/nginx/nginx.pid \
    --with-http_ssl_module \
    --with-pcre=/usr/local/src/pcre-8.42 \
    --with-zlib=/usr/local/src/zlib-1.2.11  \
    --with-openssl=/usr/local/src/openssl-1.0.2q
    #编译
    make
    #安装
    sudo make install
    

    启动nginx
    /usr/local/nginx/nginx
    查看80端口是否开启
    netstat -ano |grep 80
    验证是否成功
    curl -I 127.0.0.1
    结果如下:

    [root@VM_0_15_centos local]# curl -I 127.0.0.1
    HTTP/1.1 200 OK
    Server: nginx/1.14.1
    Date: Fri, 30 Nov 2018 04:08:33 GMT
    Content-Type: text/html
    Content-Length: 612
    Last-Modified: Fri, 30 Nov 2018 04:00:46 GMT
    Connection: keep-alive
    ETag: "5c00b5ee-264"
    Accept-Ranges: bytes
    

    第二步安装php

    安装依赖

    yum -y install libmcrypt-devel mhash-devel libxslt-devel \
    libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
    zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
    ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
    krb5 krb5-devel libidn libidn-devel openssl openssl-devel
    

    安装php

    cd /usr/local/src/
    wget http://cn.php.net/distributions/php-7.2.12.tar.gz
    tar zxvf php-7.2.12.tar.gz
    cd /usr/local/src/php-7.2.12/
    #预编译
    ./configure --prefix=/usr/local/php \
    --enable-fpm \
    --enable-mbstring\
     --enable-pdo \
     --with-curl \
    --disable-debug  \
    --disable-rpath \
    --enable-inline-optimization \
    --with-bz2 \
    --with-zlib \
    --enable-sockets \
    --enable-sysvsem \
     --enable-sysvshm \
    --enable-pcntl \
    --enable-mbregex \
    --with-mhash \
    --enable-zip \
     --with-pcre-regex \
    --with-pdo-mysql \
    --with-mysqli \
    --with-gd \
    --with-jpeg-dir \
     --with-freetype-dir \
    --enable-calendar \
    --with-pdo-mysql \
    --enable-opcache
    #编译
    make
    #安装
    sudo make install
    

    测试php

    /usr/local/php/bin/php -v
    

    结果如下

    [root@VM_0_15_centos php-7.2.12]# /usr/local/php/bin/php -v
    PHP 7.2.12 (cli) (built: Nov 30 2018 13:00:02) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    

    第三步完善php

    配置php.ini

    #确定php.ini的设置位置
    /usr/local/php/bin/php -i |grep Configuration
    #结果如下:
    [root@VM_0_15_centos php-7.2.12]# /usr/local/php/bin/php -i |grep Configuration
    Configuration File (php.ini) Path => /usr/local/php/lib
    Loaded Configuration File => (none)
    Configuration
    
    #拷贝php源码的php.ini示例文件到php运行加载位置
    cp /usr/local/src/php-7.2.12/php.ini-development  /usr/local/php/lib/php.ini
    #编辑php.ini
    vim /usr/local/php/lib/php.ini
    #设置
    cgi.fix_pathinfo=0
    

    配置php-fpm

    cp /usr/local/src/php-7.2.12/sapi/fpm/php-fpm /usr/local/bin
    cp /usr/local/php/etc/php-fpm.conf.default   /usr/local/php/etc/php-fpm.conf
     cp  /usr/local/php/etc/php-fpm.d/www.conf.default   /usr/local/php/etc/php-fpm.d/www.conf
    #创建www用户组
    groupadd www
    #增加www用户
    useradd -g www www
    
    #编辑添加www用户
    vim /usr/local/php/etc/php-fpm.d/www.conf
    #找到如下位置,更改为www
    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default user's group
    ;       will be used.
    user = www
    group = www
    
    #停止php-fpm
    killall php-fpm
    #启动php-fpm
    php-fpm
    #查看
    netstat -lntup | grep 9000
    

    第四步配置nginx解析php

    vim /usr/local/nginx/nginx.conf
    
          location / {
                root   html;
                index  index.php index.html index.htm;
            }
    
            location ~* \.php$ {
               fastcgi_index   index.php;
               fastcgi_pass    127.0.0.1:9000;
               include         fastcgi_params;
               fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
               fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
            }
    
    #测试配置是否正常
    /usr/local/nginx/nginx -t
    #重启nginx
    /usr/local/nginx/nginx -s reload
    #编辑测试php文件
    cd /usr/local/nginx/html/
    vim index.php
    
    <?php echo "hello word";
    
    curl -I 127.0.0.1
    #测试结果
    
    [root@VM_0_15_centos html]# curl -I 127.0.0.1
    HTTP/1.1 200 OK
    Server: nginx/1.14.1
    Date: Fri, 30 Nov 2018 06:54:38 GMT
    Content-Type: text/html; charset=UTF-8
    Connection: keep-alive
    X-Powered-By: PHP/7.2.12
    
    

    第五步安装mysql

    cd /usr/local/src/
    wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
    rpm -ivh ./mysql80-community-release-el7-1.noarch.rpm 
    service mysqld start
    
    vim /etc/my.cnf
    
    [mysqld]
    skip-grant-tables 
    default_authentication_plugin=mysql_native_password
    
    #重启mysql
    
    #登录mysql
     #刷新权限
    flush privileges;
    #创建账号
    CREATE USER 'user'@'%' IDENTIFIED BY '你的密码';
    #运行远程登录
    GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
    flush privileges; 
    
    #再注释掉skip-grant-tables  重启mysql
    systemctl stop mysqld
    systemctl start mysqld
    

    相关文章

      网友评论

          本文标题:LNMP环境搭建(Nginx1.14.1+PHP7.2.12+M

          本文链接:https://www.haomeiwen.com/subject/zwgccqtx.html