centos环境下nginx+php搭建
我是在centos5环境下搭建的nginx服务器,使用php-fpm方式来驱动php,下面描述下使用配置过程.
环境:
操作系统 : centos 5
nginx-1.0.12
php-5.3.10
1. 安装php-5.3.10
注 : php-fpm已经作为一个模块添加到了php代码中,这里只需要在php编译的时候增加
--enable-fpm
wget http://cn.php.net/distributions/php-5.3.10.tar.gz
tar -zxvf php-5.3.10.tar.gzcd php-5.3.10
./configure --prefix=php-root --enable-fastcgi --with-mysql=/home/programs/mysql --enable-zend-multibyte --enable-zip --enable-discard-path --enable-force-cgi-redirect --with-libxml-dir --with-curl --with-openssl --with-mysqli --with-zlib --enable-mbstring --with-gd --with-mcrypt --enable-exif --enable-fpm --enable-force-cgi-redirect --enable-pdo --with-pdo-mysql=/home/programs/mysql --with-ttf --with-iconv --enable-xml --with-gd --with-jpeg-dir=/usr/local/ --with-png-dir=/usr/local --with-freetype-dir=/usr/include/freetype2/
makemake install
yum install gcc gcc-c++ autoconf automakeyum -y install zlib zlib-develyum -y install openssl openssl-develyum -y install pcre pcre-devel
wget http://nginx.org/download/nginx-1.0.12.tar.gz tar -zxvf nginx-1.0.12.tar.gzcd nginx-1.0.12./configure --prefix=nginx-rootmakemake install
cp phproot/etc/php-fpm.conf.default -> phproot/etc/php-fpm.confvi phproot/etc/php-fpm.conf
; Unix user/group of processes; Note: The user is mandatory. If the group is not set, the default user's group; will be used.user = webadmingroup = webadmin; The address on which to accept FastCGI requests.; Valid syntaxes are:; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on; a specific port;; 'port' - to listen on a TCP socket to all addresses on a; specific port;; '/path/to/unix/socket' - to listen on a unix socket.; Note: This value is mandatory.listen = 127.0.0.1:9000
#!/bin/bash# php-fpm Startup script for php-fpm, a FastCGI implementation# this script was created by tony at 2010.07.21, based on jackbillow's nginx script.# it is v.0.0.1 version.# if you find any errors on this scripts,please contact tony.# by sending mail to tonytzhou at gmail dot com.## chkconfig: - 85 15# description: php-fpm is an alternative FastCGI implementation, with some additional features useful for sites of any size, especially busier sites.## processname: phpfpm# pidfile: /usr/local/var/run/phpfpm.pid# config: /usr/local/etc/phpfpm.confphpfpm=/home/programs/php/sbin/php-fpmconfig=/home/programs/php/lib/php.inipid=/home/programs/php/run/php-fpm.pidRETVAL=0prog="phpfpm"# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0[ -x $phpfpm ] || exit 0# Start phpfpm daemons functions.start() {if [ -e $pid ];then echo "phpfpm is already running...." exit 1fi echo -n $"Starting $prog: " daemon $phpfpm -c ${config} RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/phpfpm return $RETVAL}# Stop phpfpm daemons functions.stop() { echo -n $"Stopping $prog: " killproc $phpfpm RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/phpfpm /var/run/phpfpm.pid}# reload phpfpm service functions.reload() { echo -n $"Reloading $prog: " #kill -HUP `cat ${pid}` killproc $phpfpm -HUP RETVAL=$? echo}# See how we were called.case "$1" instart) start ;;stop) stop ;;reload) reload ;;restart) stop start ;;status) status $prog RETVAL=$? ;;*) echo $"Usage: $prog {start|stop|restart|reload|status|help}" exit 1esacexit $RETVAL
#user nobody;user webadmin webadmin;worker_processes 4;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;pid logs/nginx.pid;# 指定文件描述符数量worker_rlimit_nofile 51200;events { # 使用网络I/O模型,linux推荐使用epoll, FressBSD推荐私用kqueue use epoll; # 允许链接数 worker_connections 51200;}http { include mime.types; default_type application/octet-stream; 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 logs/access.log main; #autoindex off; # 设置字符集,如果多种字符集,不要设置 #charset utf-8; sendfile on; keepalive_timeout 65; 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 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_com_level 2; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_vary on; server { listen 80; server_name www.demo.com; index index.html index.htm index.php; root web-root; # 图片缓存 location ~* \.(?:ico|gif|jpe?g|png|bmp|swf)$ { # Some basic cache-control for static files to be sent to the browser expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } # 静态资源缓存 location ~.*\.(js|css)?$ { expires 1h; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root web-root; fastcgi_pass 127.0.0.1:9000; # fpm监听的端口和ip fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME web-root$fastcgi_script_name; include fastcgi_params; } } }
nginx-root/bin/nginx -c nginx-root/conf/nginx.conf