亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    CentOS下Nginx+PHP7 安裝及配置

    今天花了幾個(gè)小時(shí)折騰了下Nginx+PHP7編譯安裝和配置,寫個(gè)文章記錄下。

    系統(tǒng)環(huán)境:CentOS6.5 x64

    軟件版本:nginx-1.10.0 php-7.0.6

    安裝 Nginx

    Nginx官網(wǎng):http://nginx.org/

    先安裝編譯依賴的一些組件

    yum install pcre pcre-devel openssl openssl-devel -y

    1、解壓程序包

    tar xf nginx-1.10.0.tar.gz
    cd nginx-1.10.0

    2、預(yù)編譯配置參數(shù)

    ./configure –user=www
    –group=www
    –prefix=/data/server/nginx
    –with-http_stub_status_module
    –without-http-cache
    –with-http_ssl_module
    –with-http_gzip_static_module

    3、執(zhí)行編譯

    make && make install

    4、替換配置文件

    •nginx.conf

    user  www www;
    worker_processes  1;

    error_log  /u01/data/log/nginx/error.log crit;
    pid      /u01/data/server/nginx/logs/nginx.pid;

    #Specifies the value for maximum file descriptors that can be opened by this process.
    worker_rlimit_nofile 65535;

    events
    {
      use epoll;
      worker_connections 65535;
    }

    http {
            include      mime.types;
            default_type  application/octet-stream;

            #charset  gb2312;

            server_names_hash_bucket_size 128;
            client_header_buffer_size 32k;
            large_client_header_buffers 4 32k;
            client_max_body_size 8m;

            sendfile on;
            tcp_nopush    on;

            keepalive_timeout 60;

            tcp_nodelay on;

            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
            fastcgi_buffer_size 64k;
            fastcgi_buffers 4 64k;
            fastcgi_busy_buffers_size 128k;
            fastcgi_temp_file_write_size 128k;

            gzip on;
            gzip_min_length  1k;
            gzip_buffers    4 16k;
            gzip_http_version 1.0;
            gzip_comp_level 2;
            gzip_types      text/plain application/x-javascript text/css application/xml;
            gzip_vary on;
            #limit_zone  crawler  $binary_remote_addr  10m;
            log_format main ‘$remote_addr – “$request_time” [$time_local] “$request” ‘
                          ‘”$status” $body_bytes_sent “$http_referer” ‘
                          ‘”$http_user_agent” $http_x_forwarded_for’;
            log_format ‘$remote_addr – $remote_user [$time_local] “$request” ‘
                          ‘$status $body_bytes_sent “$http_referer” ‘
                          ‘”$http_user_agent” $http_x_forwarded_for “$request_time”‘;
            include /u01/alidata/server/nginx/conf/vhosts/*.conf;
    }

    •虛擬主機(jī)配置文件模板

    server {
            listen      8080;
            server_name  localhost;
            index index.html index.htm index.php;
            root /u01/data/www;
            location ~ .*.(php|php5)?$
            {
                    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi.conf;
            }

            location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
            {
                    expires 30d;
            }
            location ~ .*.(js|css)?$
            {
                    expires 1h;
            }
    ###this is to use open website lianjie like on apache##
            location / {
                    if (!-e $request_filename) {
                            rewrite ^(.*)$ /index.php?s=$1 last;
                            break;
                    }
            }
            location ~ /.svn/ {
            deny all;
            }
            ###end##
            access_log  /u01/data/log/nginx/access/test.log main;
    }

    5、提供Nginx啟動(dòng)腳本

    #!/bin/bash
    # nginx Startup script for the Nginx HTTP Server

    nginxd=/alidata/server/nginx/sbin/nginx
    nginx_config=/alidata/server/nginx/conf/nginx.conf
    nginx_pid=/alidata/server/nginx/logs/nginx.pid

    RETVAL=0
    prog=”nginx”

    [ -x $nginxd ] || exit 0

    # Start nginx daemons functions.
    start() {

        if [ -e $nginx_pid ] && netstat -tunpl | grep nginx &> /dev/null;then
            echo “nginx already running….”
            exit 1
        fi

        echo -n $”Starting $prog!”
        $nginxd -c ${nginx_config}
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/nginx
        return $RETVAL
    }

    # Stop nginx daemons functions.
    stop() {
        echo -n $”Stopping $prog!”
        $nginxd -s stop
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/nginx
    }

    # reload nginx service functions.
    reload() {

        echo -n $”Reloading $prog!”
        #kill -HUP `cat ${nginx_pid}`
        $nginxd -s reload
        RETVAL=$?
        echo

    }

    # See how we were called.
    case “$1” in
    start)
            start
            ;;

    stop)
            stop
            ;;

    reload)
            reload
            ;;

    restart)
            stop
            start
            ;;

    *)
            echo $”Usage: $prog {start|stop|restart|reload|help}”
            exit 1
    esac

    exit $RETVAL

    只需要稍加修改程序路徑就可立即使用

    安裝 PHP7

    PHP官網(wǎng):http://php.net/

    PHP擴(kuò)展:http://pecl.php.net/

    先安裝一些為編譯依賴的組建

    yum -y install gcc gcc-c++ gcc-g77 make libtool autoconf patch unzip automake libxml2 libxml2-devel ncurses ncurses-devel libtool-ltdl-devel libtool-ltdl libmcrypt libmcrypt-devel libpng libpng-devel libjpeg-devel openssl openssl-devel gd-devel curl curl-devel libxml2 libxml2-devel ncurses ncurses-devel libtool-ltdl-devel libtool-ltdl autoconf automake libaio*

    1、解壓程序包

    tar xf php-7.0.6.tar.bz2
    cd php-7.0.6

    2、安裝編譯依賴的圖片庫(kù)

    jpegsrc.v6b.tar.gz

    libpng-1.2.50.tar.gz

    freetype-2.1.10.tar.gz

    # 安裝 jpegsrc.v6b.tar.gz
    # http://www.ijg.org/
    #這個(gè)需要先創(chuàng)建好存放程序的文件夾不然會(huì)報(bào)錯(cuò)

    mkdir /usr/local/jpeg.6/{bin,lib,include,man/man1} -pv
    tar xf jpegsrc.v6b.tar.gz
    cd jpeg-6b/
    ./configure –prefix=/usr/local/jpeg.6/
    make && make install

    # 安裝 libpng-1.2.50.tar.gz
    # http://www.libpng.org/pub/png/libpng.html
    tar xf libpng-1.2.50.tar.gz
    cd libpng-1.2.50
    ./configure –prefix=/usr/local/libpng.1.2.50
    make && make install

    # 安裝 freetype-2.1.10.tar.gz
    # https://www.freetype.org/download.html

    tar xf freetype-2.1.10.tar.gz
    cd freetype-2.1.10
    ./configure –prefix=/usr/local/freetype.2.1.10/
    make && make install

    3、預(yù)編譯配置參數(shù)

    ./configure –prefix=/usr/local/php7
    –enable-opcache
    –with-config-file-path=/usr/local/php7/etc
    –enable-mysqlnd
    –with-mysqli=mysqlnd
    –with-pdo-mysql=mysqlnd
    –enable-fpm
    –enable-static
    –enable-inline-optimization
    –enable-sockets
    –enable-wddx
    –enable-zip
    –enable-calendar
    –with-gd
    –with-iconv
    –with-openssl
    –with-zlib
    –enable-bcmath
    –enable-soap
    –with-xmlrpc
    –enable-mbstring
    –enable-shared
    –with-curl
    –enable-xml
    –enable-ftp
    –with-mcrypt
    –with-mhash
    –enable-shmop
    –enable-sysvsem
    –enable-mbregex
    –enable-gd-native-ttf
    –enable-pcntl
    –enable-session
    –with-gettext
    –with-freetype-dir=/usr/local/freetype.2.1.10
    –with-jpeg-dir=/usr/local/jpeg.6
    –with-png-dir=/usr/local/libpng.1.2.50
    –disable-ipv6
    –disable-debug
    –disable-maintainer-zts
    –disable-rpath
    –disable-fileinfo
    –without-gdbm

    4、執(zhí)行編譯

    make && make install

    # make ZEND_EXTRA_LIBS=’-liconv’

    5、提供php.ini文件

    cp php.ini-production /usr/local/php7/etc/php.ini

    •配置php.ini

    # 在840行左右-設(shè)置PHP的opcache和memcache擴(kuò)展庫(kù)

    zend_extension=opcache.so
    extension=memcache.so

    # 722行左右-設(shè)置PHP的擴(kuò)展庫(kù)路徑

    extension_dir = “/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/”

    # 避免PHP信息暴露在http頭中

    expose_php = Off

    # 避免暴露php調(diào)用mysql的錯(cuò)誤信息

    display_errors = Off

    # 開啟PHP錯(cuò)誤日志(路徑在php-fpm.conf中配置)

    log_errors = On

    # 設(shè)置PHP的時(shí)區(qū)

    date.timezone = PRC

    # 開啟opcache(1733行左右)

    opcache.enable=1

    # 設(shè)置PHP腳本允許訪問的目錄

    # open_basedir = /usr/share/nginx/html;

    6、配置php-fpm

    •php-fpm.conf 進(jìn)程服務(wù)主配置文件

    # 設(shè)置錯(cuò)誤日志的路徑
    error_log = /var/log/php-fpm/error.log

    # 引入www.conf文件中的配置
    include=/usr/local/php7/etc/php-fpm.d/*.conf

    # ???置主進(jìn)程打開的最大文件數(shù)
    rlimit_files = 102400

    •www.conf 進(jìn)程服務(wù)擴(kuò)展配置文件

    # 設(shè)置用戶和用戶組
    user = www
    group = www

    # 設(shè)置php監(jiān)聽方式
    # listen = 127.0.0.1:9000

    # 注意這里要設(shè)置PHP套接字文件的權(quán)限,默認(rèn)是root,Nginx無(wú)法訪問。
    listen = /var/run/php-fpm/php-fpm.sock

    # 開啟慢日志
    slowlog = /var/log/php-fpm/php-slow.log
    request_slowlog_timeout = 10s
    request_terminate_timeout = 30

    # 設(shè)置工作進(jìn)程數(shù)(根據(jù)實(shí)際情況設(shè)置)
    pm.max_children = 50
    # 這里需要注意,pm.start_servers 不能小于 pm.min_spare_servers
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 10
    pm.max_requests = 10240

    # 設(shè)置php的session目錄(所屬用戶和用戶組都是www)
    php_value[session.save_handler] = files
    php_value[session.save_path] = /var/tmp/php/session

    7、提供php-fpm啟動(dòng)腳本

    #! /bin/sh
    #

    prefix=/usr/local/php7
    exec_prefix=${prefix}

    php_fpm_BIN=${exec_prefix}/sbin/php-fpm
    php_fpm_CONF=${prefix}/etc/php-fpm.conf
    php_fpm_PID=${prefix}/var/run/php-fpm.pid

    php_opts=”–fpm-config $php_fpm_CONF –pid $php_fpm_PID”

    wait_for_pid () {
            try=0

            while test $try -lt 35 ; do

                    case “$1” in
                            ‘created’)
                            if [ -f “$2” ] ; then
                                    try=”
                                    break
                            fi
                            ;;

                            ‘removed’)
                            if [ ! -f “$2” ] ; then
                                    try=”
                                    break
                            fi
                            ;;
                    esac

                    echo -n .
                    try=`expr $try + 1`
                    sleep 1

            done

    }

    case “$1” in
            start)
                    echo -n “Starting php-fpm “

                    $php_fpm_BIN –daemonize $php_opts

                    if [ “$?” != 0 ] ; then
                            echo ” failed”
                            exit 1
                    fi

                    wait_for_pid created $php_fpm_PID

                    if [ -n “$try” ] ; then
                            echo ” failed”
                            exit 1
                    else
                            echo ” done”
                    fi
            ;;

            stop)
                    echo -n “Gracefully shutting down php-fpm “

                    if [ ! -r $php_fpm_PID ] ; then
                            echo “warning, no pid file found – php-fpm is not running ?”
                            exit 1
                    fi

                    kill -QUIT `cat $php_fpm_PID`

                    wait_for_pid removed $php_fpm_PID

                    if [ -n “$try” ] ; then
                            echo ” failed. Use force-quit”
                            exit 1
                    else
                            echo ” done”
                    fi
            ;;

            status)
                    if [ ! -r $php_fpm_PID ] ; then
                            echo “php-fpm is stopped”
                            exit 0
                    fi

                    PID=`cat $php_fpm_PID`
                    if ps -p $PID | grep -q $PID; then
                            echo “php-fpm (pid $PID) is running…”
                    else
                            echo “php-fpm dead but pid file exists”
                    fi
            ;;

            force-quit)
                    echo -n “Terminating php-fpm “

                    if [ ! -r $php_fpm_PID ] ; then
                            echo “warning, no pid file found – php-fpm is not running ?”
                            exit 1
                    fi

                    kill -TERM `cat $php_fpm_PID`

                    wait_for_pid removed $php_fpm_PID

                    if [ -n “$try” ] ; then
                            echo ” failed”
                            exit 1
                    else
                            echo ” done”
                    fi
            ;;

            restart)
                    $0 stop
                    $0 start
            ;;

            reload)

                    echo -n “Reload service php-fpm “

                    if [ ! -r $php_fpm_PID ] ; then
                            echo “warning, no pid file found – php-fpm is not running ?”
                            exit 1
                    fi

                    kill -USR2 `cat $php_fpm_PID`

                    echo ” done”
            ;;

            *)
                    echo “Usage: $0 {start|stop|force-quit|restart|reload|status}”
                    exit 1
            ;;

    esac

    八、啟動(dòng)php-fpm程序

    /etc/init.d/php-fpm start

    # 修改套接字文件權(quán)限
    chown -R www.www /var/run/php-fpm/

    九、相關(guān)錯(cuò)誤處理

    錯(cuò)誤一:configure: error: GD build test failed. Please check the config.log for details

    在本地已經(jīng)安裝了 gd 和 gd-devel 庫(kù)以后,還是出現(xiàn)該錯(cuò)誤,那么可能是編譯工具找不到相關(guān)庫(kù)(jpeg、gd),應(yīng)該在編譯參數(shù)后面添加  LDFLAGS=’-L /usr/path_to/lib’ 如果是 64 位的系統(tǒng)應(yīng)該寫為: LDFLAGS=’-L /usr/lib64′  然后重新 configure 即可。

    # example
    ./configure –prefix=/usr/server/php –enable-opcache –enable-opcache –enable-opcache –with-mysqli=mysqlnd –with-mysqli=mysqlnd LDFLAGS=’-L /usr/lib64′

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)