CentOS 安装 Nginx+php

转:http://www.excms.cn/manual/install-centos-nginx.html

安装 Nginx

安装Nginx所需的pcre库

tar zxvf pcre-8.00.tar.gz

cd pcre-8.00

./configure

make && make install clean

cd ..

安装 Nginx0.8.24

tar zxvf nginx-0.8.24.tar.gz

cd nginx-0.8.24

./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module

make && make install clean

cd ..

创建www组、用户、Nginx 日志目录

/usr/sbin/groupadd www 
/usr/sbin/useradd www -g www -d /dev/null -s /sbin/nologin
mkdir -p /var/log/nginx
chmod +w /var/log/nginx
chown -R www:www /var/log/nginx

创建 Nginx 配置文件

rm -f /usr/local/webserver/nginx/conf/nginx.conf

vi /usr/local/webserver/nginx/conf/nginx.conf

输入以下内容:
user  www www;
worker_processes 8;

error_log  /var/log/nginx/error.log;
pid        /var/log/nginx/nginx.pid;

worker_rlimit_nofile 51200;
events {
  use epoll;
  worker_connections 51200;
}

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

    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  30;
    
    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.1; 
    gzip_comp_level   2;
    gzip_types text/plain application/x-javascript text/css application/xml  
    gzip_vary on;
    
    server {
        listen       80;
        server_name  localhost;
        root   /home/excms;
        index  index.html index.htm index.php;

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        location /nginx_status {
            stub_status on;
            access_log   off;
        }
    }
}

创建 Nginx 开机启动脚本

vi /etc/init.d/nginx

加入以下内容

#!/bin/bash
#
# chkconfig: - 85 15
# description: Nginx is a World Wide Web server.
# processname: nginx

nginx=/usr/local/webserver/nginx/sbin/nginx
conf=/usr/local/webserver/nginx/conf/nginx.conf

case $1 in
       start)
              echo -n "Starting Nginx"
              $nginx -c $conf
              echo " done"
       ;;

       stop)
              echo -n "Stopping Nginx"
              killall -9 nginx
              echo " done"
       ;;

       test)
              $nginx -t -c $conf
       ;;

        reload)
              echo -n "Reloading Nginx"
              ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
              echo " done"
       ;;

        restart)
                $0 stop
                $0 start
       ;;

       show)
              ps -aux|grep nginx
       ;;

       *)
              echo -n "Usage: $0 {start|restart|reload|stop|test|show}"
       ;;
        
esac

为 nginx.sh 脚本设置可执行属性

chmod +x /etc/init.d/nginx

添加 Nginx 为系统服务(开机自动启动)

chkconfig --add nginx
chkconfig nginx on

启动 Nginx

service nginx start

在不停止 Nginx 服务的情况下平滑变更 Nginx 配置

修改 /usr/local/webserver/nginx/conf/nginx.conf 配置文件后,请执行以下命令检查配置文件是否正确:

service nginx test

  如果屏幕显示以下两行信息,说明配置文件正确:

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

the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully

平滑变更 Nginx 配置

service nginx reload

安装 GD

安装 zlib

tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make && make install clean
cd ..

安装 libpng

tar zxvf libpng-1.2.40.tar.gz
cd libpng-1.2.40
./configure
make && make install clean
cd ..

安装 jpeg

tar zxvf jpegsrc.v7.tar.gz
cd jpeg-7
./configure -enable-shared -enable-static
make && make install clean
cd ..

安装 freetype

tar zxvf freetype-2.3.11.tar.gz
cd freetype-2.3.11
./configure
make && make install clean
cd ..

安装 gd2.0.35

tar zxvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure
make && make install clean
cd ..

安装 libxml2

tar -zxvf libxml2-2.7.6.tar.gz
cd libxml2-2.7.6
./configure
make && make install clean
cd ..

安装 PHP

编译安装PHP 5.2.11所需的支持库 libiconv

tar zxvf libiconv-1.13.tar.gz

cd libiconv-1.13

./configure --prefix=/usr/local

make && make install clean

cd ..

编译安装PHP(FastCGI模式)

tar zxvf php-5.2.11.tar.gz

gzip -cd php-5.2.11-fpm-0.5.13.diff.gz | patch -d php-5.2.11 -p1

cd php-5.2.11

./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-gd --enable-gd-native-ttf --with-libxml-dir --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-openssl --enable-pcntl --enable-sockets

make ZEND_EXTRA_LIBS='-liconv'

make install clean

cp php.ini-dist /usr/local/webserver/php/etc/php.ini

cd ..