首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

centos环境停nginx+php搭建

2012-08-01 
centos环境下nginx+php搭建我是在centos5环境下搭建的nginx服务器,使用php-fpm方式来驱动php,下面描述下使

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


安装完成之后在php-root/lib/中新建php.ini文件,可以修改一些配置项

注:上面的配置需要根据环境的需求自己修改,以上包含了gd库、mysql、php-fpm等配置

2. 安装nginx-1.0.12
可能需要依赖:
模块依赖:
gcc
gzip     -- zlib
rewrite  -- pcre
ssl      -- openssl

yum install gcc gcc-c++ autoconf automakeyum -y install zlib zlib-develyum -y install openssl openssl-develyum -y install pcre pcre-devel


下载安装nginx
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


3. 配置php-fpm
先拷贝配置文件,在进行编辑
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


可根据需求进行优化设置

4. 制作fpm启动服务
复制下面的代码,vi /etc/init.d/php-fpm,保存
修改可执行权限  chmod +x /etc/init.d/php-fpm
启动   /etc/init.d/php-fpm start
停止   /etc/init.d/php-fpm stop
重启   /etc/init.d/php-fpm restart

#!/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


5. 配置nginx
使用80端口,域名为www.demo.com


#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.conf,

6. 启动nginx

nginx-root/bin/nginx -c nginx-root/conf/nginx.conf


访问http://www.demo.com就可以了
注: www.demo.com需要绑定到hosts中

后续会增加rewrite的一些自己的理解和总结


热点排行