zoukankan      html  css  js  c++  java
  • 基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台

    一、安装准备 1.1平台环境:

    1. CentOS 5.4 x86_64 GNU/Linux
    2. nginx-0.8.21
    3. php-5.2.9
    4. spawn-fcgi-1.6.3
    5. mysql-5.1.34

    .2系统安装及分区:
    1.2.1操作系统安装:
             安装过程中选择最少的包,采用文本模式安装,不安装图形。
    1.2.3系统分区:
             /boot  100M    (大约100左右) 
             SWAP  4G      物理内存的2倍(如果你的物理内存大于4G,分配4G即可) 
             /       50G 
             /data             剩余所有空间.
             注:具体分区请根据相关业务划分
    1.2.4系统软件包安装规范
        系统约定: 
             软件源代码包存放位置             /usr/local/src 
             源码包编译安装位置(prefix)     /usr/local/software_name 
             脚本以及维护程序存放位置       /usr/local/sbin 
             MySQL 数据库位置                /data/mysql/data(可按情况设置) 
             网站根目录                          /data/www/wwwroot(可按情况设置) 
             虚拟主机日志根目录               /data/logs(可按情况设置) 
             Nginx运行账户                     www:www 
             install_software_name.sh     //存放编译参数脚本习惯将所有编译脚本存放在install_software_name.sh便于升级和更新软件. 
    1.3.系统初始化
    #vi init_network.sh

    复制代码
    #welcome
     
    cat << EOF
     
    +--------------------------------------------------------------+
     
    |         === Welcome to Centos System init ===                |
     
    +--------------------------------------------------------------+
     
    +----------------------Author:NetSeek--------------------------+
     
    EOF
     
    #disable ipv6
     
    cat << EOF
     
    +--------------------------------------------------------------+
     
    |         === Welcome to Disable IPV6 ===                      |
     
    +--------------------------------------------------------------+
     
    EOF
     
    echo "alias net-pf-10 off" >> /etc/modprobe.conf
     
    echo "alias ipv6 off" >> /etc/modprobe.conf
     
    /sbin/chkconfig --level 35 ip6tables off
     
    echo "ipv6 is disabled!"
     
    #disable selinux
     
    sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 
    echo "selinux is disabled,you must reboot!"
     
    #vim
     
    sed -i "8 s/^/alias vi='vim'/" /root/.bashrc
     
    echo 'syntax on' > /root/.vimrc
     
    #zh_cn
     
    sed -i -e 's/^LANG=.*/LANG="en"/'   /etc/sysconfig/i18n
     
    #init_ssh
     
    ssh_cf="/etc/ssh/sshd_config" 
    sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf
     
    sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf
     
    #client
     
    sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf
     
    echo "ssh is init is ok.............."
     
    #chkser
     
    #tunoff services
     
    #--------------------------------------------------------------------------------
     
    cat << EOF
     
    +--------------------------------------------------------------+
     
    |         === Welcome to Tunoff services ===                   |
     
    +--------------------------------------------------------------+
     
    EOF
     
    #---------------------------------------------------------------------------------
     
    for i in `ls /etc/rc3.d/S*`
     
    do
     
                 CURSRV=`echo $i|cut -c 15-`
     
    echo $CURSRV
     
    case $CURSRV in
     
             crond | irqbalance | microcode_ctl | network | random | sendmail | sshd | syslog | local | mysqld )
     
         echo "Base services, Skip!"
     
         ;;
     
         *)
     
             echo "change $CURSRV to off"
     
             chkconfig --level 235 $CURSRV off
     
             service $CURSRV stop
     
         ;;
     
    esac
     
    done
    复制代码

    1.4 系统环境部署及调整
    检查系统是否正常 
    # tail -n100 /var/log/messages   (检查有无系统级错误信息) 
    # dmesg                     (检查硬件设备是否有错误信息) 
    # ifconfig                    (检查网卡设置是否正确) 
    # ping www.cqseo.org       (检查网络是否正常)
    1.5使用 yum 程序安装所需开发包
    1.5.1 更换快源

    #cd /etc/yum.repos.d/

    #mv CentOS-Base.repo CentOS-Base.repo.linuxtone

    #wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo

    1.5.2 yum安装相关软件包:

    #yum -y install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel libtool* zlib-devel libxml2-devel libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel curl curl-devel pam-devel e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

     1.6 定时校正服务器时钟,定时与中国国家授时中心授时服务器同步 
    # crontab -e 
    加入一行: 15 3 * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1

    1.7下载相关软件包
    #cd /usr/local/src
    #vi list_tar.list

    http://docs.linuxtone.org/soft/lemp/ImageMagick.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/PDO_MYSQL-1.0.2.tgz
     
    http://docs.linuxtone.org/soft/lemp/eaccelerator-0.9.5.3.tar.bz2
     
    http://docs.linuxtone.org/soft/lemp/imagick-2.2.2.tgz
     
    http://docs.linuxtone.org/soft/lemp/libiconv-1.13.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/libmcrypt-2.5.8.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/mcrypt-2.6.8.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/memcache-2.2.5.tgz
     
    http://docs.linuxtone.org/soft/lemp/mhash-0.9.9.9.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/mysql-5.1.34.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/pcre-7.8.tar.gz
     
    http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/php-5.2.9.tar.bz2
     
    http://sysoev.ru/nginx/nginx-0.8.21.tar.gz
     
    http://docs.linuxtone.org/soft/lemp/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz

    #wget -i list_tar.list
    1.8.添加nginx 运维账户:
    #vi add_webuser.sh

    /usr/sbin/groupadd www
     
    /usr/sbin/useradd -g www www
     
    mkdir -p /data/www/wwwroot
     
    chmod +w /data/www/wwwroot
     
    chown www:www /data/www/wwwroot -R

    #sh add_webuser.sh
    二.编译安装
    2.1 编译安装pcre

    #tar zxvf pcre-7.8.tar.gz 
    #cd pcre-7.8
     
    #./configure && make && make install

    2.2 编译安装nginx
    #tar zxvf nginx-0.8.21.tar.gz
     
    #cd nginx-0.8.21

    2.2.1 附加:修改nginx源代码,伪装nginx服务器(仅供参考,安全还得认真做起^.^):
    (1).修改gcc
    #vi auto/cc/gcc

    NGX_GCC_OPT="-O"

    NGX_GCC_OPT="-O3"

    (2).修改nginx.h 
    #vi nginx-0.8.21/src/core/nginx.h 

    #define NGINX_VERSION      "0.7.58"
     
    #define NGINX_VER          "nginx/" NGINX_VERSION

    修改为:

    #define NGINX_VERSION      "1.0"
     
    #define NGINX_VER          "LTWS/" NGINX_VERSION

    (3).修改nginx_http_header_filter_module 
    #vi nginx-0.8.21/src/http/ngx_http_header_filter_module.c

    static char ngx_http_server_string[] = "Server: nginx" CRLF;

    修改为:

    static char ngx_http_server_string[] = "Server: LTWS" CRLF;

    (4).修改ngx_http_special_response.c
    #vi nginx-0.8.21/src/http/ngx_http_special_response.c
    将如下

    static u_char ngx_http_error_full_tail[] =  

    "<hr><center>" NGINX_VER "</center>" CRLF  

    "</body>" CRLF  

    "</html>" CRLF  

    ;  

    static u_char ngx_http_error_tail[] =  

    "<hr><center>nginx</center>" CRLF  

    "</body>" CRLF  

    "</html>" CRLF  

    ;

    static u_char ngx_http_error_full_tail[] =  

    "<hr><center> "NGINX_VER" </center>" CRLF  

    "<hr><center>http://www.linuxtone.com</center>" CRLF  

    "</body>" CRLF  

    "</html>" CRLF  

    ;  

    static u_char ngx_http_error_tail[] =  

    "<hr><center>HMGWS</center>" CRLF  

    "</body>" CRLF  

    "</html>" CRLF  

    ;

    2.2.2 nginx 编译安装

    ./configure
     
        "--user=www"
     
        "--group=www"
     
        "--prefix=/usr/local/nginx/"
     
        "--with-http_stub_status_module"
     
        "--with-http_ssl_module"
     
        "--with-md5=/usr/lib"
     
        "--with-sha1=/usr/lib"
     
    make
     
    make install

    2.3 编译安装配置mysql

    复制代码
    ./configure 
     
        "--prefix=/usr/local/mysql" 
     
        "--localstatedir=/data/mysql/data" 
     
        "--with-comment=Source" 
     
        "--with-server-suffix=-Linuxtone.Org" 
     
        "--enable-assembler" 
     
        "--with-charset=utf8" 
     
        "--with-collation=utf8_chinese_ci" 
     
        "--with-collation=utf8_chinese_ci" 
     
        "--with-extra-charsets=complex" 
     
        "--enable-thread-safe-client" 
     
        "--with-big-tables" 
     
        "--with-readline" 
     
        "--with-ssl" 
     
        "--with-embedded-server" 
     
        "--enable-local-infile" 
     
        "--with-plugins=innobase"
     
    make
     
    make install
     
    useradd mysql -d /data/mysql -s /sbin/nologin
     
    /usr/local/mysql/bin/mysql_install_db --user=mysql
     
    cd /usr/local/mysql
     
    chown -R root:mysql .
     
    mkdir -p /data/mysql/data
     
    chown -R mysql /data/mysql/data
     
    cp share/mysql/my-huge.cnf /etc/my.cnf.bak
     
    wget http://www.caifw.com/api/my.cnf
     
    sed -i '50 s/^/#/' /etc/my.cnf
     
    cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld
     
    chmod 755 /etc/rc.d/init.d/mysqld
     
    chkconfig --add mysqld
     
    /etc/rc.d/init.d/mysqld start
     
    
    cd /usr/local/mysql/bin
     
    for i in *; do ln -s /usr/local/mysql/bin/$i /usr/bin/$i; done
    复制代码

    2.4 编译安装php 
    2.4.1安装php相应的lib
      2.4.1.1 libiconv-1.13

    #tar zxvf libiconv-1.13.tar.gz 
    #cd libiconv-1.13
     
    #./configure --prefix=/usr && make && make install

    2.4.1.2 libmcrypt-2.5.8

    复制代码
    #tar zxvf libmcrypt-2.5.8.tar.gz
     
    #cd libmcrypt-2.5.8/
     
    #./configure --prefix=/usr && make && make install
     
    #echo "/usr/lib" >> /etc/ld.so.conf 
    #ldconfig
     
    #cd libltdl/
     
    #./configure --enable-ltdl-install
     
    #make && make install
    复制代码

    2.4.1.3 mhash-0.9.9.9

    #tar zxvf mhash-0.9.9.9.tar.gz 
    #cd mhash-0.9.9.9
     
    #./configure --prefix=/usr && make && make install
     
    #ldconfig

    2.4.1.4 mcrypt-2.6.8

    #tar zxvf mcrypt-2.6.8.tar.gz 
    #cd mcrypt-2.6.8
     
    #./configure --prefix=/usr && make&& make install

    2.4.2 安装spawn-fcgi

    #tar zvxf spawn-fcgi-1.6.3.tar.gz
     
    #cd spawn-fcgi-1.6.3
     
    #./configure && make && make install

    2.4.3 安装php

    复制代码
    #tar jvxf php-5.2.9.tar.bz2
     
    #vi install_php.sh
     
    ./configure  
     
        "--prefix=/usr/local/php" 
     
        "--enable-fastcgi" 
     
        "--enable-fpm" 
     
        "--enable-discard-path" 
     
        "--enable-force-cgi-redirect" 
     
        "--with-config-file-path=/usr/local/php/etc" 
     
        "--with-mysql=/usr/local/mysql" 
     
        "--with-mysqli=/usr/local/mysql/bin/mysql_config" 
     
        "--with-iconv-dir" 
     
        "--with-freetype-dir" 
     
        "--with-jpeg-dir" 
     
        "--with-png-dir" 
     
        "--with-gd" 
     
        "--with-zlib" 
     
        "--with-libxml-dir" 
     
        "--with-curl" 
     
        "--with-curlwrappers" 
     
        "--with-openssl" 
     
        "--with-mhash" 
     
        "--with-xmlrpc" 
     
        "--with-mcrypt" 
     
        "--with-ldap" 
     
        "--with-ldap-sasl" 
     
        "--enable-xml" 
     
        "--disable-rpath" 
     
        "--enable-discard-path" 
     
        "--enable-safe-mode" 
     
        "--enable-bcmath" 
     
        "--enable-shmop" 
     
        "--enable-sysvsem" 
     
        "--enable-inline-optimization" 
     
        "--enable-mbregex" 
     
        "--enable-mbstring" 
     
        "--enable-gd-native-ttf" 
     
        "--enable-ftp" 
     
        "--enable-pcntl" 
     
        "--enable-sockets" 
     
        "--enable-zip" 
     
        "--disable-debug" 
     
        "--disable-ipv6"
     
    make ZEND_EXTRA_LIBS='-liconv'
     
    make install
     
    cp php.ini-dist /usr/local/php/etc/php.ini
    复制代码

    #sh install_php.sh
    2.4.4安装PHP扩展模块
      2.4.4.1 memcache-2.2.5

    复制代码
    #tar zvxf memcache-2.2.5.tgz
     
    #cd memcache-2.2.5
     
    #/usr/local/php/bin/phpize
     
    #./configure --with-php-config=/usr/local/php/bin/php-config
     
    #make && make install
    复制代码

    2.4.4.2 eaccelerator-0.9.5.3

    #tar jvxf eaccelerator-0.9.5.3.tar.bz2
    #cd eaccelerator-0.9.5.3
    #/usr/local/php/bin/phpize
    #./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
    #make && make install

    2.4.4.3 PDO_MYSQL-1.0.2

    #tar zxvf PDO_MYSQL-1.0.2.tgz 
    #cd PDO_MYSQL-1.0.2
    #/usr/local/php/bin/phpize
    #./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
    #make && make install

    2.4.4.4 ImageMagick

    #tar zxvf ImageMagick.tar.gz
    #cd ImageMagick-6.5.1-2/   
    #./configure --enable-shared --with-modules --without-x --with-gs-font-dir=default --with-perl=yes --with-xml=yes --with-zlib=yes --with-jpeg=yes 
    # make && make install

    2.4.4.5 imagick-2.2.2

    复制代码
    #tar zxvf imagick-2.2.2.tgz
     
    #cd imagick-2.2.2/
     
    #/usr/local/php/bin/phpize
     
    #./configure --with-php-config=/usr/local/php/bin/php-config
     
    #make
     
    #make install
    复制代码

    2.4.5脚本配置php.ini
    # vi init_php.sh

    复制代码
    #!/bin/bash
     
    fcgi_cf="/usr/local/php/etc/php.ini"
     
    ea(){
     
    cat << EOF
     
    [eAccelerator]
     
    zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
     
    eaccelerator.shm_size="32"
     
    eaccelerator.cache_dir="/data/cache/ea"
     
    eaccelerator.enable="1"
     
    eaccelerator.optimizer="1"
     
    eaccelerator.check_mtime="1"
     
    eaccelerator.debug="0"
     
    eaccelerator.filter=""
     
    eaccelerator.shm_max="0"
     
    eaccelerator.shm_ttl="0"
     
    eaccelerator.shm_prune_period="0"
     
    eaccelerator.shm_only="0"
     
    eaccelerator.compress="1"
     
    eaccelerator.compress_level="9"
     
    EOF
     
    }
     
    #mkdir
     
    mkdir -p /data/cache/ea
     
    ea >> $fcgi_cf
     
    #config for php.ini
     
    sed -i '205 s#;open_basedir =#open_basedir = /data/www/wwwroot:/tmp#g' $fcgi_cf
     
    sed -i '210 s#disable_functions =#;disable_functions = phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server#g' $fcgi_cf
     
    sed -i '/expose_php/s/On/Off/' $fcgi_cf
     
    sed -i '/display_errors/s/On/Off/' $fcgi_cf
     
    sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
    extension = "memcache.so"
    extension = "pdo_mysql.so"
    extension = "imagick.so"
    #' $fcgi_cf
     
    sed -i 's#output_buffering = Off#output_buffering = On#' $fcgi_cf
    复制代码

    2.5安装Zend

    #tar zvxf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
     
    # cd ZendOptimizer-3.3.3-linux-glibc23-x86_64
     
    # ./install

    注:php.ini的位置为/usr/local/php/etc 服务器不选用apache
    三、配置整合
    3.1 配置nginx
    注:本文spawn-fcgi开启9000跟9001两个端口,利用nginx的upstream负载均衡php程序到不同的fcgi端口上面,解决502 gateway错误
    #cd /usr/local/nginx/conf
    #cp nginx.conf nginx.conf.linuxtone
    #vi nginx.conf

    复制代码
    user  www www;
     
    
    worker_processes 10;
     
    
    pid /var/run/nginx.pid;
     
    # [ debug | info | notice | warn | error | crit ]
     
    error_log  /dev/null;
     
    #error_log /data/logs/nginxerror.log;
     
    #Specifies the value for maximum file descriptors that can be opened by this process.
     
    worker_rlimit_nofile 51200;
     
    
    events
     
    {
     
           use epoll;
     
    
           #maxclient = worker_processes * worker_connections / cpu_number
     
           worker_connections 51200;
     
    }
     
    
    http
     
    {
     
           include       /usr/local/nginx/conf/mime.types;
     
           default_type  application/octet-stream;
     
           #charset  gb2312;
     
           charset utf8;
     
           log_format  main  '$remote_addr - $remote_user [$time_local] $request '
     
                             '"$status" $body_bytes_sent "$http_referer" '
     
                             '"$http_user_agent" "$http_x_forwarded_for"';
     
    
           #access_log  /data/www/logs/access.log  main;
     
           access_log  /dev/null;
     
    
           #General Options
     
           server_names_hash_bucket_size 128;
     
           client_header_buffer_size 32k;
     
           large_client_header_buffers 4 32k;
     
           ignore_invalid_headers   on;
     
           recursive_error_pages    on;
     
           server_name_in_redirect off;
     
          
     
           sendfile                 on;
     
    
           #timeouts
     
           keepalive_timeout 60;
     
          
     
           #TCP Options 
           tcp_nopush  on;
     
           tcp_nodelay on;
     
           #fastcgi options 
           fastcgi_connect_timeout 300;
     
           fastcgi_send_timeout 300;
     
           fastcgi_read_timeout 300;
     
           
           fastcgi_buffer_size 128k;
     
           fastcgi_buffers 4 128k;
     
           fastcgi_busy_buffers_size 128k;
     
           fastcgi_temp_file_write_size 128k;
     
           fastcgi_intercept_errors on;
     
           ssi on;
     
           ssi_silent_errors on;
     
           ssi_types text/shtml;
     
           #size limits
     
           client_max_body_size       50m;
     
           client_body_buffer_size    256k;
     
           #gzip  compression
     
           gzip on;
     
           gzip_min_length  0;
     
           gzip_buffers     16 8k;
     
           gzip_http_version 1.0;
     
           gzip_comp_level 9;
     
           gzip_types       text/plain text/css image/x-icon image/png;
     
           gzip_vary on;
     
    
           #temp files
     
           proxy_temp_path            /dev/shm/proxy_temp;
     
           fastcgi_temp_path          /dev/shm/fastcgi_temp;
     
           client_body_temp_path      /dev/shm/client_body_temp;
     
           #client_body_temp_path  /usr/local/nginx/client_body_temp 1 2;
     
           #proxy_temp_path        /usr/local/nginx/proxy_temp 1 2;
     
           #fastcgi_temp_path      /usr/local/nginx/fastcgi_temp 1 2;
     
           
           #upstream
     
           upstream  spawn {
     
           # ip_hash;
     
            server   127.0.0.1:9000 max_fails=0 fail_timeout=30s;
     
            server   127.0.0.1:9001 max_fails=0 fail_timeout=30s;
     
           }
     
    
           # The following includes are specified for virtual hosts
     
            #www.linuxtone.org
     
            include          /usr/local/nginx/conf/vhosts/www.linuxtone.org.conf;
     
    }
    复制代码

    #mkdir vhosts
    #vi vhosts/www.linuxtone.org.conf

    复制代码
    server
     
           {
     
                   listen       80;
     
                   server_name  www.linuxtone.org .linuxtone.org;
     
                   index index.html index.htm index.php;
     
                   root  /data/www/wwwroot/linuxtone;
     
                   error_page 404 http://www.linuxtone.org;
     
                   #rewrite ^/bbs/(.*) http://bbs.linuxtone.org/$1;
     
                   location ~ .*.php?$
     
                   {
     
                           fastcgi_pass spawn;
     
                           include /usr/local/nginx/conf/spawn_php5.conf;
     
                           fastcgi_index  index.php;
     
                   }
     
                   location ~* .(js|css|jpg|jpeg|gif|png)$ {
     
                   if (-f $request_filename) {
     
                      access_log   off;
     
                      expires      1d;
     
                      break;
     
                      }
     
                    }
     
           }
    复制代码

    #vi /usr/local/nginx/conf/spawn_php5.conf

    复制代码
    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
     
    fastcgi_param  SERVER_SOFTWARE    nginx;
     
    fastcgi_param  QUERY_STRING       $query_string;
     
    fastcgi_param  REQUEST_METHOD     $request_method;
     
    fastcgi_param  CONTENT_TYPE       $content_type;
     
    fastcgi_param  CONTENT_LENGTH     $content_length;
     
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
     
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
     
    fastcgi_param  REQUEST_URI        $request_uri;
     
    fastcgi_param  DOCUMENT_URI       $document_uri;
     
    fastcgi_param  DOCUMENT_ROOT      $document_root;
     
    fastcgi_param  SERVER_PROTOCOL    $server_protocol;
     
    fastcgi_param  REMOTE_ADDR        $remote_addr;
     
    fastcgi_param  REMOTE_PORT        $remote_port;
     
    fastcgi_param  SERVER_ADDR        $server_addr;
     
    fastcgi_param  SERVER_PORT        $server_port;
     
    fastcgi_param  SERVER_NAME        $server_name;
     
    # PHP only, required if PHP was built with --enable-force-cgi-redirect
     
    #fastcgi_param  REDIRECT_STATUS    200;
    复制代码

    3.2 配置spawn-fcgi启动脚本
    #mkdir /usr/local/php/sbin
    # vi /usr/local/php/sbin/spawn-fcgi

    复制代码
    #! /bin/sh
     
    
    set -e
     
    
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
     
    DESC="spawn-fcgi daemon"
     
    NAME=spawn-fcgi
     
    DAEMON=/usr/local/bin/$NAME
     
    
    # Gracefully exit if the package has been removed.
     
    test -x $DAEMON || exit 0
     
    
    d_start() {
     
      $DAEMON -a 127.0.0.1 -p 9000 -C 128 -u www -g www -f /usr/local/php/bin/php-cgi > /dev/null 2>&1
     
      $DAEMON -a 127.0.0.1 -p 9001 -C 128 -u www -g www -f /usr/local/php/bin/php-cgi > /dev/null 2>&1 || echo -n " already running"
     
    }
     
    
    d_stop() {
     
      /usr/bin/killall -9 php-cgi > /dev/null 2>&1 || echo -n " not running"
     
    }
     
      
     
    case "$1" in
     
      start)
     
            echo -n "Starting $DESC: $NAME"
     
            d_start
     
            echo "."
     
            ;;
     
      stop)
     
            echo -n "Stopping $DESC: $NAME"
     
            d_stop
     
            echo "."
     
            ;;
     
      restart)
     
            echo -n "Restarting $DESC: $NAME"
     
            d_stop
     
            sleep 1
     
            d_start
     
            echo "."
     
            ;;
     
      *)
     
              echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
     
              exit 3
     
            ;;
     
    esac
     
    
    exit 0
    复制代码

    #chmod 755 /usr/local/php/sbin/spawn-fcgi
    四、启动WEB服务
    4.1.启动spawn-fcgi
    #/usr/local/php/sbin/spawn-fcgi start
    4.2.启动nginx
    4.2.1检查nginx配置:
    # /usr/local/nginx/sbin/nginx ?t     //返回如下信息说明配置正确

    the configuration file /usr/local/nginx//conf/nginx.conf syntax is ok
    configuration file /usr/local/nginx//conf/nginx.conf test is successful

    #/usr/local/nginx/sbin/nginx    //启动nginx
    4.3.加入开机启动
    #vi /etc/rc.local
    在最后加入:

    ulimit -SHn 51200
     
    /usr/local/nginx/sbin/nginx
     
    /usr/local/php/sbin/spawn-fcgi start

    五、测试
    #mkdir /data/www/wwwroot/linuxtone
    #vi phpinfo.php

    <?php
     
    Phpinfo();
     
    ?>

    打开浏览器输入:http://www.linuxtone.org/phpinfo.php
    即可查看当前配置环境. 查看完成后出于安全考虑请再将此函数禁掉.

     (文章来自:http://www.cnblogs.com/ado-geek/archive/2012/05/31/2528098.html)

  • 相关阅读:
    解决UITableView中Cell重用机制导致内容出错的方法总结
    Hdu 1052 Tian Ji -- The Horse Racing
    Hdu 1009 FatMouse' Trade
    hdu 2037 今年暑假不AC
    hdu 1559 最大子矩阵
    hdu 1004 Let the Balloon Rise
    Hdu 1214 圆桌会议
    Hdu 1081 To The Max
    Hdu 2845 Beans
    Hdu 2955 Robberies 0/1背包
  • 原文地址:https://www.cnblogs.com/liuzhi/p/3923203.html
Copyright © 2011-2022 走看看