1.准备工作
Windows操作系统
-
Nginx
下载地址:http://nginx.org/en/download.html
选择一个最新版下载即可,我下载的是 nginx/Windows-1.9.15
-
PHP
下载地址:http://php.net/downloads.php
(nginx下php是以FastCGI的方式运行,所以我们下载非线程安全也就是nts的php包)
选择一个PHP7的最新版下载即可,我下载的是 php-7.0.5-nts-Win32-VC14-x64
2.软件安装
-
Nginx
Nginx本身就是绿色软件,下载zip安装包解压后,双击nginx.exe就可以运行
我的nginx放置的目录为:C:\lish\Program\nginx-1.9.15
双击后在刘浏览器打开 http://127.0.0.1 即可以看到欢迎页面
-
PHP
PHP也是绿色软件,下载zip安装包解压即可
我的PHP放置的目录为:C:\lish\Program\php-7.0.5
3.环境配置
准备一个文件夹,作为网站的根目录,这个在下面的配置文件中会多次用到,我的网站根目录为:C:\lish\Program\htdoc
- Nginx
在Nginx根目录下找到conf目录,编辑器打开nginx.conf
1.找到这个配置块,
location / {,
root html;
index index.html index.htm;
}
修改为:
location / {,
root C:\lish\Program\htdoc;
index index.html index.htm;
}
2.找到这个配置块
#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”所指的站点路径,这是改完后的:
location ~ .php$ {
root C:\lish\Program\htdoc;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME$document_root
$fastcgi_script_name;
include fastcgi_params;
}
-
PHP
- 在php根目录下找到php.ini-development文件,复制一份在当前目录并且重命名为php.ini
2.记事本打开php.ini,找到 “;cgi.fix_pathinfo=1”,去掉全面的分好,也就是说打开这条注释。
4.运行与测试
-
配置原理
在这里,我简单说说配置的原理,因为nginx是一个反向代理的web服务器,因此它其实必须依赖一个真正的web服务器才能执行动态的网页内容,因此这里php就是使用fastcgi来充当这个真正的web服务器,它运行在9000端口上,这也是为什么nginx.conf中有这样一句
fastcgi_pass 127.0.0.1:9000;
,知道这个原理后,下面的思路就很明确了,打开fastcgi,然后再打开nginx就行了 -
打开nginx
这个没啥好说的,双击nginx.exe就打开了,上文中已经提到了
-
打开fastcgi
在命令行中,cd到php的home目录,然后执行如下命令:
php-cgi.exe -b 127.0.0.1:9000 -c php.ini
-
测试
在 C:\lish\Program\htdoc 下新建一个info.php文件,输入如下内容:
<?php
phpinfo
?>
打开浏览器,输入 http://127.0.0.1/info.php,这时候可以看到如下页面了:
5.补充
执行了php-cgi.exe -b 127.0.0.1:9000 -c php.ini
之后,控制台就一直开着,很不方便。
这个时候可以使用 RunHiddenConsole.zip 来得以补充
然后复制到nginx目录,新建两个bat批处理文件,start.bat和stop.bat
start_nginx.bat:
@echo off
REM set PHP_FCGI_CHILDREN=5
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI…
RunHiddenConsole C:/lish/Program/php-7.0.5/php-cgi.exe -b 127.0.0.1:9000 -c C:/lish/Program/php-7.0.5/php.ini
echo Starting nginx…
RunHiddenConsole C:/lish/Program/nginx-1.9.15/nginx.exe -p C:/lish/Program/nginx-1.9.15/nginx
stop_nginx.bat:
@echo off
echo Stopping nginx…
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI…
taskkill /F /IM php-cgi.exe > nul
exit
nginx的目录此时大概是这样子:
保存两个文件,点击start_nginx.bat:启动nginx和php!这时候Ctrl+Alt+Del可以看到:
打开浏览器,输入 http://127.0.0.1/info.php,这时候同样可以看到刚才的目录。