zoukankan      html  css  js  c++  java
  • nginx-php

    一、环境准备

    yum install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel -y
    

    安装字符集转换的库

    tar -zxf libiconv-1.14.tar.gz 
    cd libiconv-1.14
    ./configure --prefix=/usr/local/libiconv
    make && make install
    

    加密的库,并不是必须要装的

    tar -zxf libmcrypt-2.5.8.tar.gz 
    cd libmcrypt-2.5.8
    ./configure 
    make && make install
    sleep 2
    /sbin/ldconfig 
    cd libltdl/
    ./configure --enable-ltdl-install
    make && make install
    

    Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)

    tar -zxf mhash-0.9.9.9.tar.gz 
    cd mhash-0.9.9.9
    ./configure 
    make && make install
    echo $?
    
    rm -f /usr/lib64/libmcrypt.*
    rm -f /usr/lib64/libmhash*
    ln -s /usr/local/lib64/libmcrypt.la /usr/lib64/libmcrypt.la
    ln -s /usr/local/lib64/libmcrypt.so /usr/lib64/libmcrypt.so
    ln -s /usr/local/lib64/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
    ln -s /usr/local/lib64/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
    ln -s /usr/local/lib64/libmhash.a /usr/lib64/libmhash.a
    ln -s /usr/local/lib64/libmhash.la /usr/lib64/libmhash.la
    ln -s /usr/local/lib64/libmhash.so /usr/lib64/libmhash.so
    ln -s /usr/local/lib64/libmhash.so.2 /usr/lib64/libmhash.so.2
    ln -s /usr/local/lib64/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
    ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
    

      

    tar -zxf mcrypt-2.6.8.tar.gz 
    cd mcrypt-2.6.8
    /sbin/ldconfig 
    ./configure LD_LIBRARY_PATH=/usr/local/lib
    make && make install
    

    二、php安装

    不安装的问题就是可能会报错
     yum install libxslt* -y
    
    tar -zxf php-5.3.27.tar.gz 
    cd php-5.3.27
    

    1)编译安装

    ./configure 
    --prefix=/application/php5.3.27 
    --with-mysql=/application/mysql 
    --with-iconv-dir=/usr/local/libiconv 
    --with-freetype-dir 
    --with-jpeg-dir 
    --with-png-dir 
    --with-zlib 
    --with-libxml-dir=/usr 
    --enable-xml 
    --disable-rpath 
    --enable-safe-mode 
    --enable-bcmath 
    --enable-shmop 
    --enable-sysvsem 
    --enable-inline-optimization 
    --with-curl 
    --with-curlwrappers 
    --enable-mbregex 
    --enable-fpm 					(这个参数很重要,5.3和5.2的不一样,fcgi)
    --enable-mbstring 
    --with-mcrypt 
    --with-gd 
    --enable-gd-native-ttf 
    --with-openssl 
    --with-mhash 
    --enable-pcntl 
    --enable-sockets 
    --with-xmlrpc 
    --enable-zip 
    --enable-soap 
    --enable-short-tags 
    --enable-zend-multibyte 
    --enable-static 
    --with-xsl 
    --with-fpm-user=nginx 
    --with-fpm-group=nginx 
    --enable-ftp
    
    ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
    make && make install
    ln -s /application/php5.3.27/ /application/php
    

    2)nginx的php有两个配置文件,php.ini php-fpm.conf

    拷贝php配置文件
    [root@rsyncclient php-5.3.27]# cp php.ini-production /application/php/lib/php.ini
    

    补充,优化:

    ulimit -n
    http://blog.csdn.net/yangzhenzhen/article/details/8905846

    3)配置php-fpm

    [root@rsyncclient etc]# cp php-fpm.conf.default php-fpm.conf
    [root@rsyncclient lib]# mkdir -p /app/logs/
    [root@rsyncclient etc]# /application/php/sbin/php-fpm -t
    [18-Aug-2017 06:14:26] NOTICE: configuration file /application/php5.3.27/etc/php-fpm.conf test is successful
    [root@rsyncclient etc]# /application/php/sbin/php-fpm
    [root@rsyncclient etc]# netstat -tnlp | grep php-fpm
    tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      36309/php-fpm     
    

    4)配置开机启动

    可以配置它的开机启动
    cat >>/etc/rc.local <<EOF
    /etc/init.d/mysqld start
    /application/php/sbin/php-fpm
    /application/nginx/sbin/nginx
    EOF
    

    补充
    [root@rsyncclient extra]# sed -e '6,12s/#//g' bbs.conf
    [root@rsyncclient extra]# sed -i '6,12s/#//g' bbs.conf

    三、nginx与php关联

    一个web站点的配置

    [root@rsyncclient extra]# vim bbs.conf 
    server {
            listen       80;
            server_name  bbs.etiantian.org;
                root   html/bbs;
                index  index.php  index.html index.htm;
             location ~.*.(php|php5)?$ {
                # root           html/bbs;
                 fastcgi_pass   127.0.0.1:9000;
                 fastcgi_index  index.php;
                # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                 include        fastcgi.conf;
             }
        }
    

    主配置

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        error_log logs/error.log error;
     
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
     
        include extra/cms.conf;
        include extra/bbs.conf;
        #include extra/wiki.conf;
    }
    

    此时也可以用我前面的方式,lamp的方式检测nginx与php,php与数据库的联系。

  • 相关阅读:
    java常用问题排查工具
    一次CMS GC问题排查过程(理解原理+读懂GC日志)
    nginx [alert] 12339#0: 1024 worker_connections are not enough
    netstat Recv-Q和Send-Q
    Use of Recv-Q and Send-Q
    LoadRunner 11 error:Cannot initialize driver dll
    perf + Flame Graph火焰图分析程序性能
    nginx 499状态码
    supervisor管理nginx
    supervisor管理php-fpm
  • 原文地址:https://www.cnblogs.com/bill2014/p/7476984.html
Copyright © 2011-2022 走看看