window+nginx+php
今天在Windows上配置了下nginx,看了不少其他大牛们记录的博客,自己也操作了一番,记录一下备忘。
nginx download: http://nginx.org/en/download.html
php download: http://php.net/
windows下nginx+php的安装配置如下:
1、安装php(D:/php)
2、配置php.ini
extension_dir = "./ext"; 更改为 extension_dir = "D:/php/ext"; 去掉如下两句的注释符,这两句是php连接mysql的必须链接库 ;extension=php_mysql.dll ;extension=php_mysqli.dll 去掉下句的注释符 ;cgi.fix_pathinfo=1
3、安装nginx(D:/nginx)
4、配置nginx.conf
打开D:/nginx/conf/nginx.conf,找到
# 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 /scripts$fastcgi_script_name; # include fastcgi_params; #}
先将前面的“#”去掉
root html; //该句表示站点根目录,可以更换为你想要的目录
再把标记为红色的/scripts改为“$document_root”,这里的“$document_root”就是指前面“root”所指的站点路径,当然也可以更换为绝对路径。这是改完后的:
# 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 $document_root$fastcgi_script_name; include fastcgi_params; }
输入如下命令启动phpcgi:
D:/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/php/php.ini
然后启动nginx,即nginx目录下的nginx.exe。
为了方便你也可以自己写一个bat脚本来快速执行以上命令,代码如下:
启动脚本:
@echo off REM Windows 下无效 REM set PHP_FCGI_CHILDREN=5 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量 set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI... RunHiddenConsole D:/xampp/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/xampp/php/php.ini echo Starting nginx... D:/nginx-1.5.5/nginx.exe
停止脚本:
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit
其中RunHiddenConsole.exe为隐藏命令提示符窗口的一个工具。以上执行以后窗口可以关闭,nginx、phpcgi服务会在后台执行。
RunHiddenConsole.exe下载地址http://pan.baidu.com/share/link?shareid=364654&uk=2819113184跟脚本放到同一个目录下
=============================
在配置的时候出现了一个问题,对于新手来说估计有写也会遇到这个问题,当然网上也有很多的答案,这里记录一下解决方案。
问题:出现No input file specified问题
(1) 路径不合
root html; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
(2)配置不当
在php.ini(/usr/local/php/etc/php.ini)的配置中中找到
cgi.fix_pathinfo=0; 将其改成cgi.fix_pathinfo=1
我是一个nginx菜鸟,入门都不算,如果哪位路过的大牛有好的教程或资料,望能够分享一下,3Q。[505600376@qq.com]