前言
很多时候,现有市面上的集成包已经足够可以满足我们的开发需求了,比如XAMPP,QAMPP,WAMP。
但是,对于我个人而言,我并不喜欢这样的集成包,虽然安装方便,但是在集成包里面包含了一大堆我并不需要的东西,这个是我觉得很讨厌的一点,所以,才想着在Windows系统下面自己手动搭建 PHP以及Nginx环境。
下载nginx
网址:http://nginx.org/en/download.html
如图所示:选择稳定版下载

下载PHP
网址:https://www.php.net/downloads.php
如图所示:点击此处,进入下载页面:
nginx下php是以FastCGI的方式运行,所以我们下载非线程安全也就是nts的php包
将压缩包下载下来。
存放目录
因为个人习惯,我将Nginx的压缩包以及PHP的压缩包解压到D盘,路径为:
Nginx解压路径:D:\WNP\nginx-1.14.2
PHP解压路径:D:\WNP\php-7.3.4
配置PHP
复制 D:\WNP\php-7.3.4 目录下的php.ini-development文件,并改名为:php.ini
修改PHP.ini
将;extension_dir = "./"替换为extension_dir = "D:\WNP\php-7.3.4\ext"
将;date.timezone =替换为date.timezone = Asia/Shanghai
将enable_dl = Off替换为enable_dl = On
将;cgi.force_redirect = 1替换为cgi.force_redirect = 0
将;fastcgi.impersonate = 1替换为fastcgi.impersonate = 1
将;cgi.rfc2616_headers = 0替换为cgi.rfc2616_headers = 1
将;extension=curl替换为extension=curl
将;extension=gd2替换为extension=gd2
将;extension=imap替换为extension=imap
将;extension=mbstring替换为extension=mbstring
将;extension=mysqli替换为extension=mysqli
将;extension=pdo_mysql替换为extension=pdo_mysql
将;extension=snmp替换为extension=snmp
将;extension=soap替换为extension=soap
将;extension=sockets替换为extension=sockets
将;extension=xsl替换为extension=xsl
将;fastcgi.impersonate = 1替换为fastcgi.impersonate = 1
配置Nginx
编辑 D:\WNP\nginx-1.14.2\conf 目录下的 nginx.conf 文件(具体目录根据自身情况来改变)
在大概 43-45行之间,有这样的配置:
location / {
root html;
index index.html index.htm;
}改为:
location / {
root E:\www; # 这里改成你自己的PHP目录(不是PHP安装目录,而是存放PHP)
index index.html index.htm index.php;
}接下来,我们需要Nginx支持PHP
在大概 65行 - 71行有这样的配置
#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;
#}改为
location ~ \.php$ {
root E:\www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}启动
接下来我们可以通过控制台命令启动PHP
D:/WNP/php-7.3.4/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/WNP/php-7.3.4/php.ini通过控制台启动nginx
D:/WNP/nginx-1.14.2/nginx.exe如果没有报错,那么,通过浏览器打开连接 http://localhost即可看到以下页面:

这样便是成功配置了。
将PHP与Nginx部署为服务
1、下载
前往 https://github.com/kohsuke/winsw/releases 下载 winsw (其中.NET4.exe适用于WIN10系统,.NET2.exe适用于Win10以下的系统)
前往 https://github.com/78/xxfpm 下载 xxfpm,用来开启PHP-CGI多进程
2、将Nginx注册为服务
①将下载到的WinSW.NET2.exe更名为nginx-service.exe,放到nginx.exe所在的目录下,在该目录下新增文件 nginx-service.xml,修改nginx-service.xml配置如下:
<service>
<id>Nginx</id>
<name>Nginx-1.14.2</name>
<description>Nginx-1.14.2服务</description>
<logpath>D:\WNP\nginx-1.14.2</logpath>
<logmode>roll</logmode>
<depend></depend>
<executable>D:\WNP\nginx-1.14.2\nginx.exe</executable>
<stopexecutable>D:\WNP\nginx-1.14.2\nginx.exe -s quit</stopexecutable>
</service>②在D:\WNP\nginx-1.14.2目录下,使用命令行执行nginx-service.exe install 即可生成 windows 服务,卸载命令为nginx-service.exe uninstall

安装服务之后,需要我们启动Nginx服务,我们可以通过命令启动
net start Nginx
3、将PHP注册为服务
①将下载的xxfpm.exe 和 pthreadGC2.dll 扔进php-cgi.exe所在的目录,即 D:\WNP\php-7.3.4;
②将下载到的WinSW.NET2.exe更名为php-service.exe,放到php-cgi.exe所在的目录下,在该目录下新增文件 php-service.xml,修改php-service.xml配置如下:
<service>
<id>PHP</id>
<name>PHP-7.3.4</name>
<description>PHP-7.3.4服务</description>
<executable>xxfpm.exe</executable>
<startargument>"D:/WNP/php-7.3.4/php-cgi.exe -c D:/WNP/php-7.3.4/php.ini"</startargument>
<startargument>-n</startargument>
<startargument>1</startargument>
<startargument>-i</startargument>
<startargument>127.0.0.1</startargument>
<startargument>-p</startargument>
<startargument>9000</startargument>
<stopexecutable>taskkill</stopexecutable>
<stopargument>/F</stopargument>
<stopargument>/IM</stopargument>
<stopargument>xxfpm.exe</stopargument>
<logpath>logs</logpath>
</service>③在D:\WNP\php-7.3.4目录下,使用命令行执行php-service.exe install 即可生成 windows 服务,卸载命令为php-service.exe uninstall

④安装服务之后,需要我们启动PHP服务,我们可以通过命令启动
net start PHP
如此,打开 http://localhost 便可以看到配置好的页面了: