看看想想记记
« »
May 27, 2008Tech

694 views

nginx+PHP4+fastCGI 小试一把

号称最牛B的webserver为何不试试呢

[环境准备]
1. Nginx 0.6.31 (阴精X,不知是谁给他取的这名字,跟他性能一样BT)
2. Lighthttpd:去其官方下载,为利用其fastcgi lighttpd-1.4.19.tar.gz (不推荐张宴兄提供的spawn-fcgi)
3. 其他:PHP4.4.8 (5现在懒的去装) MySQL mysql-5.0.51 其他如GD安装(支持png/jpg/gif) ,详见我的:

[安装]
1.nginx安装

需要pcre
wget -S ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
tar xzvf pcre-7.7.tar.gz
cd pcre-7.7
./configure
make
make install
wget -S http://sysoev.ru/nginx/nginx-0.6.31.tar.gz
tar zxvf nginx-0.6.31.tar.gz
cd nginx-0.6.31
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid
make
make install

好了,现在就可以测试了,

cd /usr/local/nginx/nginx
nginx -t

2. 重新编译 PHP ,目录换成/usr/local/php-fcgi ,只是不想和原来的Apache2编译的PHP同在一个目录
这些可以自定义模块,只是这两个不能少
./configure --prefix=/usr/local/php-fcgi --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect --enable-mbstring=all --with-config-file-path=/usr/local/php-fcgi/etc --with-gd=/usr/local/modules/gd --with-zlib --with-png --with-jpeg --with-freetype --with-mysql=/usr/local/mysql
make
make install


3. 我们要拿light htttpd的fastcgi支持:

wget -S http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
tar zxvf lighttpd-1.4.19.tar.gz
cd lighttpd-1.4.19
./configure --without-bzip2 (不加会要求装模块哦)
make (make install就不用了)

拿来fastcgi
cp -a src/spawn-fcgi /usr/local/php-fcgi/bin/
还没完:
在nginx加支持PHP

vi /usr/local/nginx/nginx.conf

在server内加入一段:
location ~ .*\.php?$ {
include fcgi.conf;
}
再编辑一下fcgi.conf

vi /usr/local/nginx/fcgi.conf

fastcgi_pass 127.0.0.1:10080;

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.开工测试
启动CGI:
/usr/local/php-fcgi/bin/spawn-fcgi -a 127.0.0.1 -p 10080 -C 32 -f /usr/local/php-fcgi/bin/php
监听在 127.0.0.1 的 10080 端口并开启 32 个进程,使用和 Nginx 一样的 nobody 用户。(PHP5 的执行程序是 php-cgi)

重启nginx:(其实是杀死一个进程)
kill -HUP ‘cat /usr/local/nginx/logs/nginx.pid’

再重启看看

/usr/local/nginx/nginx -t测试一下可以就/usr/local/nginx/nginx

日志信息 »

该日志于2008-05-27 14:34由 J.et wong 发表在Tech分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

相关日志 »

  • No Related Post

没有评论

发表评论 »

返回顶部

Switch to our mobile site