zoukankan      html  css  js  c++  java
  • lnmp环境搭建(centos6.9+mysql5.7+php7.1+nginx1.10)

    安装前准备:CentOS 6.9 64位 最小化安装

    yum install -y make gcc gcc-c++ perl zlib-devel libaio libpng libpng-devel libjpeg-devel pcre-devel
    yum install -y  libXpm-devel openssl openssl-devel libxml2-devel bzip2-devel.x86_64 libjpeg-turbo-devel
    yum install -y  freetype freetype-devel libtool cmake ncurses-devel bison re2c curl-devel wget
    rpm -ivh "http://mirrors.sohu.com/fedora-epel/epel-release-latest-6.noarch.rpm"
    yum install -y libmcrypt-devel re2c
    

    一、安装MySql

    mysql的安装请参考LAMP环境搭建(centos6.9+apache2.4+mysql5.7+php7.1)和里面的安装方法一样。

    二、php安装

    下载php安装包并解压进入

    cd /usr/local/src
    wget http://mirrors.sohu.com/php/php-7.1.3.tar.gz
    tar zxvf php-7.1.3.tar.gz
    cd php-7.1.3
    

    编译

    ./configure 
    --prefix=/usr/local/php 
    --with-config-file-path=/usr/local/php/etc  
    --enable-fpm 
    --with-fpm-user=nobody 
    --with-fpm-group=nobody 
    --with-mysql-sock=/tmp/mysql.sock 
    --enable-mysqlnd 
    --with-mysqli=mysqlnd 
    --with-pdo-mysql=mysqlnd 
    --with-libxml-dir 
    --with-gd 
    --with-jpeg-dir 
    --with-png-dir 
    --with-freetype-dir 
    --with-iconv-dir 
    --with-zlib-dir 
    --with-bz2 
    --with-openssl 
    --with-mcrypt 
    --enable-soap 
    --enable-gd-native-ttf 
    --enable-mbstring 
    --enable-sockets 
    --enable-exif 
    --disable-ipv6
    

    安装

    make && make install
    

    复制配置文件

    cp php.ini-production /usr/local/php/etc/php.ini
    cp /usr/local/src/php-7.1.3/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    cp -v /usr/local/php/etc/{php-fpm.conf.default,php-fpm.conf}
    cp -v /usr/local/php/etc/php-fpm.d/{www.conf.default,www.conf}
    

    vi /usr/local/php/etc/php-fpm.d/www.conf 修改 (如果user和group在编译参数里设置了,这里就不用修改了)

    user = nobody
    group = nobody
    

    修改php.ini
    vi /usr/local/php/etc/php.ini

    date.timezone = Asia/Chongqing
    

    授权添加进服务并启动

    chmod 755 /etc/init.d/php-fpm 
    chkconfig --add php-fpm
    chkconfig php-fpm on 
    service php-fpm start
    

    三、安装nginx

    下载nginx安装包解压并进入目录

    cd /usr/local/src
    yum install -y pcre-devel
    wget http://mirrors.sohu.com/nginx/nginx-1.10.3.tar.gz
    tar zxvf nginx-1.10.3.tar.gz
    cd nginx-1.10.3
    

    编译并安装

    ./configure   --prefix=/usr/local/nginx   --with-pcre 
    make && make install
    

    vi /etc/init.d/nginx
    把nginx脚本(在最下面复制nginx启动脚本)保存为 /etc/init.d/nginx,找到下面三行

    nginx="/usr/sbin/nginx"
    pidfile="/var/run/${prog}.pid"
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"
    

    修改为:

    nginx="/usr/local/nginx/sbin/nginx"
    pidfile="/usr/local/nginx/logs/${prog}.pid"
    NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
    

    保存后,执行以下命令设置开机启动以及启动服务

    chmod +x /etc/init.d/nginx
    chkconfig --add nginx
    chkconfig nginx on
    /etc/init.d/nginx start
    

    五、配置解析php

    vi /usr/local/nginx/conf/nginx.conf
    找到

    location / {
                root   html;
                index  index.html index.htm;
            }
    

    改成

    location / {
                root   html;
                index  index.html index.htm index.php;
            }
    

    找到

            #location ~ .php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    

    改成

            location ~ .php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
                include        fastcgi_params;
            }
    

    测试nginx配置文件是否正确

    /usr/local/nginx/sbin/nginx -t
    

    重新加载配置文件

    /etc/init.d/nginx reload
    

    测试解析php
    vi /usr/local/nginx/html/1.php
    写入:

    <?php
        echo "php解析正常";
        echo phpinfo();
    ?>
    

    保存后,继续测试:

    curl localhost/1.php
    

    查看结果已经可以成功解析。
    ngnix启动脚本

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse 
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
    # Source function library.
    . /etc/rc.d/init.d/functions
    # Source networking configuration.
    . /etc/sysconfig/network
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    nginx="/usr/sbin/nginx"
    prog=$(basename $nginx)
    sysconfig="/etc/sysconfig/$prog"
    lockfile="/var/lock/subsys/nginx"
    pidfile="/var/run/${prog}.pid"
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"
    [ -f $sysconfig ] && . $sysconfig
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    stop() {
        echo -n $"Stopping $prog: "
        killproc -p $pidfile $prog
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    restart() {
        configtest_q || return 6
        stop
        start
    }
    reload() {
        configtest_q || return 6
        echo -n $"Reloading $prog: "
        killproc -p $pidfile $prog -HUP
        echo
    }
    configtest() {
        $nginx -t -c $NGINX_CONF_FILE
    }
    configtest_q() {
        $nginx -t -q -c $NGINX_CONF_FILE
    }
    rh_status() {
        status $prog
    }
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    # Upgrade the binary with no downtime.
    upgrade() {
        local oldbin_pidfile="${pidfile}.oldbin"
        configtest_q || return 6
        echo -n $"Upgrading $prog: "
        killproc -p $pidfile $prog -USR2
        retval=$?
        sleep 1
        if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]];  then
            killproc -p $oldbin_pidfile $prog -QUIT
            success $"$prog online upgrade"
            echo 
            return 0
        else
            failure $"$prog online upgrade"
            echo
            return 1
        fi
    }
    # Tell nginx to reopen logs
    reopen_logs() {
        configtest_q || return 6
        echo -n $"Reopening $prog logs: "
        killproc -p $pidfile $prog -USR1
        retval=$?
        echo
        return $retval
    }
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest|reopen_logs)
            $1
            ;;
        force-reload|upgrade) 
            rh_status_q || exit 7
            upgrade
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        status|status_q)
            rh_$1
            ;;
        condrestart|try-restart)
            rh_status_q || exit 7
            restart
         ;;
        *)
            echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart|reopen_logs}"
            exit 2
    esac
    
  • 相关阅读:
    Ubuntu包管理命令 dpkg、apt和aptitude
    Linux curses库使用
    VC皮肤库SkinSharp 1.0.6.6的使用
    HOG(方向梯度直方图)
    2014年国外发布的中国内地大学排名18强名单
    sql语句中BEGIN TRAN...COMMIT TRAN
    搜索框中“请输入搜索keyword”
    IOS基于新浪微博开放平台微博APP
    php字符串标点等字符截取不乱吗 封装方法
    谈一谈struts2和springmvc的拦截器
  • 原文地址:https://www.cnblogs.com/cdw0724/p/10769320.html
Copyright © 2011-2022 走看看