Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。
据说 nginx 是这几年来 Web 服务器的后起之秀,是“Apache杀手”,由俄罗斯程序员编写。是一个轻量级的 Web 服务器,也是据说,占用资源少,高并发,在某些情况下,效率是 Apache 的 10 倍。国内外很多大型门户站都在用。
nginx下载地址:http://nginx.org/en/download.html 下载nginx for Windows 版本
php下载地址:http://www.php.net/downloads.php 下载php for Windiowns版本
解压 PHP 到 C:php-5.3.2-Win32-VC6-x86,正确配置 php.ini 文件。
直接解压下载的 nginx-0.8.38.zip 文件到 C:nginx-0.8.38,文件夹结构:
conf
contrib
docs
html
logs
temp
nginx.exe
双击运行nginx.exe文件,nginx 就开始提供服务。
html 文件夹为网站默认根目录。
conf 放置 nginx 配置有关的文件。配置文件 nginx.conf 内容如下(#号打头的语句被注释掉了,可以参考):
server {……} 部分配制了 nginx 的 http 服务的端口(默认为80)、域名、字符集、根文件夹、首页文件等内容。
其中以下部分配置 nginx 与 PHP 以 fastcgi 方式进行集成,“C:/nginx-0.8.38/html”表示网站的根文件夹:
location ~ .php$ {# root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME C:/nginx-0.8.38/html$fastcgi_script_name;
include fastcgi_params;
}
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] “$request“ '
# '$status $body_bytes_sent “$http_referer“ '
# '“$http_user_agent“ “$http_x_forwarded_for“';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
# root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME C:/nginx-0.8.38/html$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
这时,在本机上打开浏览器,浏览 http://localhost,可以看到信息“Welcome to nginx!”,内容来自 html 下的 index.html 文件。
为了真正与 PHP 一起协同工作,还必须运行 PHP 的 php-cgi.exe 程序。方法是,在命令窗口内,切换到 php-cgl.exe 所在文件夹,运行下,即 C:php-5.3.2-Win32-VC6-x86,运行 php-cgi.exe -b 127.0.0.1:9000 命令,即:
C:php-5.3.2-Win32-VC6-x86〉php-cgi.exe -b 127.0.0.1:9000
这里的127.0.0.1:9000 就是我们在 nginx.conf 文件中配置的那个,端口号一定要相同。
nginx.exe 与 php-cgi.exe 两条命令运行的前后顺序对 PHP 文件的解析没有影响。
这时,我们在根目录下放一个 xxx.php 文件,在浏览器地址栏里面输入 http://localhost/xxx.php,应该看到结果。建议文件内容为:
<?php
phpinfo();
?>
我们可以看到 PHP 环境的很多有用的信息。
nginx 还可以配置实现反向代理、多个虚拟主机、url重定向等功能。
Nginx 的确是 *ix 系统下非常优秀的 HTTP 服务器,但开发人员而言搭建 Windows 平台的 Nginx + PHP 环境的确非常的繁琐而且容易出错。
如果您有上述的问题,那么这个包能够帮得上您的忙。使用这名为 Farseer 的软件包,能够让您在一分钟内完成 Nginx + PHP for Windows 平台的安装。
该项目地址:http://code.google.com/p/gracecode/wiki/Farseer
1、该项目貌似是淘宝技术人员工作之余的作品。
2、Farseer是WOW里的牛头人酋长么?
Windows下Nginx+PHP5(FastCgi)安装配置详解Nginx作为一款支持PHP的轻量级WEB服务器,在PHP网站建设中收到越来越多的应用,最近在Windows平台上安装配置了Nginx+PHP5的运行环境,非常方便,现详细介绍下Windows下Nginx配置PHP5的基础教程,Nginx配置PHP是以FastCgi方式配置的。
下载Nginx
Nginx可以在多种操作系统上安装配置,我使用的是Windows,所以需要下载[url=http://nginx.org/en/download.html]Nginx Windows版本[/url],点击下载Nginx。我下载的是nginx/Windows-0.8.53版本。
安装Nginx
下载完Nginx后,需要在Windows中安装Nginx,Nginx Windows版本的安装非常方便,只要解压缩后,将文件拷贝到C盘根目录下即可,我的Nginx安装目录为C:nginx-0.8.53。
安装配置PHP
我使用的是PHP5.2,你可以可以使用PHP5.3,只要PHP版本支持FastCgi方式(有php-cgi.exe)即可,PHP安装配置教程推荐参考:Windows7 IIS7下以FastCgi和ISAPI方法安装配置PHP5教程
配置Nginx支持运行PHP
首先需要打开C:nginx-0.8.53,找到C:nginx-0.8.53conf目录下的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、首先下载[url=http://blogbuildingu.com/files/RunHiddenConsole.zip]RunHiddenConsole.exe[/url]
2、启动PHP FastCgi,在CMD模式下输入
RunHiddenConsole C:/php52iis/php-cgi.exe -b 127.0.0.1:9000 -c C:/windows/php.ini
注意你的PHP安装目录,以及php.ini配置文件所在的位置。
3、启动Nginx服务,即在CMD模式下输入
C:/nginx-0.8.53/nginx.exe
至此Windows下配置Nginx以支持运行PHP的基础配置方法就完成了,你可以通过phpinfo函数查看到此时运行PHP的WEB服务器变成了Nginx。