windows下配置nginx+php环境
nginx相较于我们熟悉的apache、IIS的优势,就我浅入浅出的了解,在于“反向代理”和“负载均衡”。因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务。那么上正题了,nginx有这么多优势,那在windows下如何来配置nginx+php环境?
1、首先需要准备的应用程序包。
nginx:nginx-1.6.2 下载地址:http://download.youkuaiyun.com/detail/gy840234846/8135623
php:php-5.3.5(nginx下php是以FastCGI的方式运行,所以我们下载非线程安全也就是nts的php包) 下载地址:http://download.youkuaiyun.com/detail/gy840234846/8134521
(还会用到)RunHiddenConsole:RunHiddenConsole.zip 下载地址:http://download.youkuaiyun.com/detail/gy840234846/8135641
2、安装与配置。
(1)接下来我们来配置php,让php能够与nginx结合。修改php.ini文件:
;cgi.fix_pathinfo=1我们去掉这里的分号。
cgi.fix_pathinfo=1这一步非常重要,这里是php的CGI的设置。
(2)nginx的安装与配置。
把下载好的nginx-1.6.2的包同样解压到D盘的wnmp目录下,并重命名为nginx。接下来,我们来配置nginx,让它能够和php协同工作。进入nginx的conf目录,打开nginx的配置文件nginx.conf,找到
location / { root html; #这里是站点的根目录 index index.html index.htm;}将root html;改为root D:/wnmp/www;
再往下,找到
# 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;改为root D:/wnmp/www;。再把标记为红色的/scripts改为“$document_root”,
这里的“$document_root”就是指前面“root”所指的站点路径,这是改完后的:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#location ~ \.php$ { root D:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}保存配置文件,就可以了。
nginx+php的环境就初步配置好了,来跑跑看。我们可以输入命令
来启动php,并手动启动nginx,当然也可以利用脚本来实现。
首先把下载好的RunHiddenConsole.zip包解压到nginx目录内,
RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。
然后来创建脚本,命名为“start_nginx.bat”,我们在Notepad++里来编辑它
@echo off
REM Windows 下无效REM
set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...RunHiddenConsole D:/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5/php.ini
echo Starting nginx...
RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx
再另外创建一个名为stop_nginx.bat的脚本用来关闭nginx
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
这样,我们的服务脚本也都创建完毕了。双击start_nginx.bat看看进程管理器是不是有两个nginx.exe的进程和一个php-cgi.exe的进程呢?
这样nginx服务就启动了,而且php也以fastCGI的方式运行了。
到站点目录下,新建一个phpinfo.php的文件,在里面编辑<?php phpinfo();?>保存后,打开浏览器输入“http://localhost/phpinfo.php”,如果看到nginx的系统信息
就说明,nginx+php的环境已经配置好了。
特别注意:
当启动nginx出现闪退时,是因为端口被占用,修改方式如下
文件conf/nginx.conf
server {
listen 8888;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}