nginx 0.6.3 安装与配置(linux,nginx,php-cgi)

     nginx 的 rewrite 网站页面地址重写功能需要正则表达式模块 PCRE,另外页面压缩传输需要 zlib。     
     nginx 配置时只需引用下载后解压的 PCRE 和 ZLIB 源文件即可: ./configure –prefix=/usr/local/nginx &nginx 的 rewrite 网站页面地址重写功能需要正则表达式模块 PCRE,另外页面压缩传输需要 zlib。
      nginx 配置时只需引用下载后解压的 PCRE 和 ZLIB 源文件即可:
./configure –prefix=/usr/local/nginx –with-pcre=/backup/pcre-7.7 –with-zlib=/backup/zlib-1.2.3
      在网上看到的另一种方法是:
Nginx的编译参数如下:
[root@localhost]#./configure –prefix=/usr/local/server/nginx –with-openssl=/usr/include \
–with-pcre=/usr/include/pcre/ –with-http_stub_status_module –without-http_memcached_module \
–without-http_fastcgi_module –without-http_rewrite_module –without-http_map_module \
–without-http_geo_module –without-http_autoindex_module在这里,需要说明一下,由于Nginx的配置文件中我想用到正则,所以需要pcre模块的支持。我已经安装了pcre及pcre-devel的rpm包,但是 Ngxin 并不能正确找到 .h/.so/.a/.la 文件,因此我稍微变通了一下:
[root@localhost]#mkdir /usr/include/pcre/.libs/
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la然后,修改objs/Makefile大概在908行的位置上,注释掉以下内容:
./configure –disable-shared接下来,就可以正常执行make及make install了。
      看样子是比较麻烦的。另外一个问题是 md5 sha1 这两个东西 nginx 真的需要么???在网上查了一篇文章作参考吧:
(选择 –with-md5 或 –with-sha1 中的一个, 但不能都选; 在 debian 和 ubuntu 上, 它们应该都指向 /usr/lib)
(注: 根据 October 2006 message 的消息,md5 在一个现在不再使用的 http 缓存模块中用到,而 sha1 用在一个未完成的 mysql 库模块,所以它们当前都不是必须的)
      其实想想也是,php 网站开发中的加密功能 php 都提供了,而 nginx 本身也不使用此功能。所以在配置的时候不用加入加密的选项了。
----------------------------------------
nginx 0.6.3 配置
这里要借用一下 lighttpd 的 spawn-fcgi 文件,将其下载编译安装后拷贝到 /usr/bin 目录下面备用:
php-fastcgi 文件配置:
#!/bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nobody -f /usr/local/php/bin/php-cgi
注意用户是 nobody, -f 后面是 php 提供的 cgi 解析程序路径
fcgi.init 文件配置:
#!/bin/bash
PHP_SCRIPT=/usr/bin/php-fastcgi
RETVAL=0
case “$1″ in
start)
$PHP_SCRIPT
RETVAL=$?
;;
stop)
killall -9 php
RETVAL=$?
;;
restart)
killall -9 php
$PHP_SCRIPT
RETVAL=$?
;;
*)
echo “Usage: php-fastcgi {start|stop|restart}”
exit 1
;;
esac
exit $RETVAL
nginx 启动文件 nginx.sh 配置:
#!/bin/sh
/backup/fcgi.init start
/usr/local/nginx/sbin/nginx
配置后:
The page you are looking for is temporarily unavailable.
Please try again later.
这是 php-fastcgi 里面的 /usr/bin/spawn-fcgi 没有正常启动,将用户 root 改为 nobody,再启动一次,正常了。
这次显示:
No input file specified.
解决方案:
要么:

fastcgi_param SCRIPT_FILENAME /ngweb/$fastcgi_script_name; # nginx.conf
fastcgi_param SCRIPT_NAME $fastcgi_script_name; # fastcgi_params

要么:

fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; # nginx.conf
fastcgi_param SCRIPT_NAME /ngweb/$fastcgi_script_name; # fastcgi_params

/ngweb 是网站目录,是要解析的 PHP 文件所在。
(责任编辑:admin)