灰儿 发表于 2009-5-9 09:02:40

nginx+php的windows配置

都说nginx性能比apache还好,而且现在支持windows环境,所以拿来试试看吧,基本上都是跟着google边查边做。


1、下载

http://www.kevinworthington.com/nginx-for-windows/

我下载的稳定版,0.6.36,其中已经包括了cygwin环境。

2、安装

程序安装没有路径选项,直接默认安装在c:\nginx目录,可以选择在桌面或快速启动栏防止图标。

安装好以后,点击“Start Nginx”,根据默认的nginx.conf(位于c:\nginx\conf)配置文件,即可启动nginx支持html页面显示。

在浏览器地址栏输入http://localhost,应该可以看到测试页面,其实该页面位于c:\nginx\html目录,即web页面文件所在位置。

3、PHP配置

将php目录中的php5ts.dll(php 5.x版本,如果是php 4.x版本,则是php4ts.dll)复制到windows安装目录。

将php目录及其ext目录放到系统路径PATH中,这可能需要重新启动系统才能生效。

根据google的结果,设置php.ini中以下三个地方:

cgi.force_redirect = 0

fastcgi.impersonate = 1

cgi.rfc2616_headers = 1


4、启动php的fastcgi

打开命令行窗口,从php目录运行:

php-cgi.exe -b 127.0.0.1:9000(端口可以更换)


这个命令行窗口在正常情况下是不关闭的,可以另外打开一个命令行窗口,运行:

netstat -an


检查是否存在9000端口的监听。

5、修改nginx.conf文件
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice; //nginx错误日志,可以取消注释
#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; //nginx访问日志,可以取消注释

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80; //web server服务端口
server_name localhost;

charset utf-8; //字符集

#access_log logs/host.access.log main;

location / {
root /cygdrive/f/www/wwwroot; //web页面文件路径,请注意是cygwin环境的写法
index index.html index.htm index.php; //加入默认php页
}

#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; //端口要符合php的fastcgi运行端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME f:/www/wwwroot$fastcgi_script_name; //请注意这里的路径用web页面文件的绝对路径
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;
# }
#}

}

6、启动nginx,运行一个php页面看看吧。

然后,就可以编写一下批处理文件,加入系统计划任务,让windows启动即可运行nginx。

37 点击
页: [1]
查看完整版本: nginx+php的windows配置