转自:http://my.oschina.net/zhxm/blog/59602
1、下载Nginx,http://nginx.org/ 我下载的是nginx/Windows-1.2.0版本
下载完Nginx后,需要在Windows中安装Nginx,Nginx Windows版本的安装非常方便,只要解压缩后,将文件拷贝到C盘根目录下即可,我的Nginx安装目录为D:\nginx
2、我使用的是PHP5.2.4,你可以使用PHP5.3,只要PHP版本支持FastCgi方式(有php-cgi.exe)即可
配置Nginx支持运行PHP
首先需要打开D:\nginx,找到D:\nginx\conf目录下的nginx.conf,以记事本打开,
配置Nginx支持PHP第一步
设定error.log的存放目录,将#error_log logs/error.log;的#去处,默认error.log是存放在Nginx安装目录中logs目录下。
配置Nginx支持PHP第二步
设定WEB服务器目录,类似于PHP.INI配置文件中的document_root,Nginx配置文件中的原有信息如下
location / {
root html;
index index.html index.htm;
}
修改Nginx配置如下
location / {
root D:/phpweb;
index index.php index.html index.htm;
}
这里需要注意,路径分隔符请使用”/”而不要使用Windows中的”\”以防歧义。
配置Nginx支持PHP第三步
在Nginx配置文件中找到
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#
#}
去处#并添加WEB目录,即
location ~ \.php$ {
root D:/phpweb;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME D:/phpweb$fastcgi_script_name;
include fastcgi_params;
}
这里需要注意,需要将
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
中的/scripts修改为之前设定的WEB目录,否则会报HTTP 404错误。
配置Nginx支持PHP第三步
修改PHP.INI配置文件中的cgi.fix_pathinfo = 1,PHP 会修正 SCRIPT_FILENAME 为真实的文件地址,否则 PHP 将无法找到需要处理的 PHP 文件。
至此,Nginx支持运行PHP的基础配置工作就好了。
接下来我们需要启动PHP FastCgi和Nginx服务以便运行PHP程序,方法如下
1、首先下载RunHiddenConsole.exe复制到C:\Windows
2、启动PHP FastCgi,在CMD模式下输入
RunHiddenConsole D:/php5/php-cgi.exe -b 127.0.0.1:9000 -c C:/windows/php.ini
注意你的PHP安装目录,以及php.ini配置文件所在的位置
3、启动Nginx服务,即在CMD模式下输入D:/nginx/nginx.exe
至此Windows下配置Nginx以支持运行PHP的基础配置方法就完成了,你可以通过phpinfo函数查看到此时运行PHP的WEB服务器变成了Nginx。
另外两个执行文件
start_nginx.bat
@echo off
echo Starting PHP FastCGI...
RunHiddenConsole D:/php5/php-cgi.exe -b 127.0.0.1:9000 -c C:/Windows/php.ini
echo Starting nginx...
RunHiddenConsole D:/nginx/nginx.exe
Exit
stop_nginx.bat
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
Discuz! X2 配置URL伪静态Rewrite规则
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%
3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
if (!-e $request_filename) {
return 404;
}