Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474446
  • 博文数量: 51
  • 博客积分: 8010
  • 博客等级: 中将
  • 技术积分: 1235
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-12 10:47
文章分类

全部博文(51)

文章存档

2009年(13)

2008年(38)

我的朋友

分类:

2008-08-03 23:52:44


nginx 的 rewrite 网站页面地址重写功能需要正则表达式模块 ,另外页面压缩传输需要 。
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)
(注: 根据 的消息,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 文件所在。

阅读(875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~