/ 中存储网

Windows 2003系统安装配置Nginx服务器

2013-11-14 12:49:01 来源:kejihao

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。