nginx+php(fastcgi)+上传进度条的安装与配置

php-fpm详情见:http://syre.blogbus.com/logs/20092011.html
nginx+fastcgi见:http://www.kuqin.com/web/20080829/15611.html
php-fpm下载:http://php-fpm.anight.org/download.html
nginx介绍:http://www.ibm.com/developerworks/cn/web/wa-lo-nginx/

下载:http://sysoev.ru/nginx/nginx-0.7.30.tar.gz
下载:http://php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
下载:http://wiki.nginx.org/File:Nginx_uploadprogress_module-0.5.tar.gz
(1)装nginx
yum install pcre-devel
解压nginx-0.7.30.tar.gz与Nginx_uploadprogress_module-0.5.tar.gz(解压至/data/soft/nginx_uploadprogress_module)
./configure –prefix=/data/sys/nginx –user=nobody –group=nobody
–with-http_stub_status_module  –add-module=/data/soft/nginx_uploadprogress_module
make
make install

(2)对应php配置
tar -xjf php-5.2.8.tar.gz
gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1
cd php-5.2.8
./configure –prefix=/data/sys/php  –with-config-file-path=/data/sys/php/lib  
–with-jpeg-dir=/data/sys/gd/jpeg6 –with-png-dir=/data/sys/gd/libpng
–with-gd=/data/sys/gd/gd2 –enable-trace-vars –with-zlib=/data/sys/zlib
-with-mysql=/data/sys/mysql  –with-mysqli=/data/sys/mysql/bin/mysql_config –with-xsl –with-dom
–enable-soap –enable-sockets=shared  –enable-memory-limit –enable-ftp=shared 
–with-freetype-dir=/data/sys/gd/freetype2 –with-curl=/data/sys/curl –enable-pdo
–with-pdo-mysql=/data/sys/mysql –enable-mbstring –with-mcrypt=/data/sys/libmcrypt
–enable-discard-path –enable-force-cgi-redirect –enable-fastcgi –enable-fpm
make
make install

如报
/data/soft/php-5.2.8/sapi/cli/php: error while loading shared libraries:
/data/sys/gd/gd2/lib/libgd.so.2: cannot restore segment prot after reloc: Permission denied
make[1]: *** [install-pear-installer] Error 127
make: *** [install-pear] Error 2
解决办法:
chcon -t texrel_shlib_t /data/sys/gd/gd2/lib/libgd.so.2
或更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled

(3)配置文件
==========================
nginx.conf配置
==========================
user  nobody;
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 {
    use epoll;
    worker_connections  51200;
}
http {
    include       mime.types;
   
    default_type  application/octet-stream;
   #charset utf-8

    #access_log  logs/access.log  main;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 64k;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css application/xml;
    upload_progress proxied 1m;
    #上传文件最大500M
    client_max_body_size 500m;
    log_format  access  ‘$remote_addr –
$remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” $http_x_forwarded_for’;

    server {
        listen       80;
        server_name  localhost;
        root   /data/website/test;
        index  index.html index.htm index.php;
        location ~ ^/_nginx/ {
             stub_status on; #Nginx 状态监控配置
              access_log off;
       }
       location ~ .*\.(php|phtml)?$ {
           
            include fcgi.conf;
            fastcgi_pass   127.0.0.1:9000;
            track_uploads proxied 30s;
            fastcgi_index  index.php;
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
            fastcgi_read_timeout 300;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            expires      30d;
        }
       #以下是上传进度条显示要用到的
        location ^~ /progress { 
              report_uploads proxied;
        }
 }
}

=============================
fcgi.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;

=================================
在/data/sys/php/etc/php-fpm.conf还可以配置一些参数
=================================
(4)运行
/data/sys/php/sbin/php-fpm start
/data/sys/nginx/sbin/nginx

将上面那两行写到/etc/rc.local可实现自启动

(5)注意
修改了nginx重启用 kill -HUP `cat /data/sys/nginx/logs/nginx.pid`,服务不会中断
修改了php-fpm.conf用/data/sys/php/sbin/php-fpm  reload


相关评论

暂无评论

我要评论