前言
在 https://windows.php.net/downloads/releases/archives/ 这边的下载链接里面可以看到有很多个版本,以5.3.29为例,可以找到以下版本:
1 | 8/28/2014 9:20 PM 40116224 php-5.3.29-nts-win32-VC9-x86.msi |
.msi是安装版,src.zip是源码包。我们都不使用,其他2个版本的区别是:
- php-5.3.29-nts-Win32-VC9-x86.zip ,nts为Non Thread Safe非线程安全的版本
- php-5.3.29-Win32-VC9-x86.zip,这个为线程安全的版本
同时PHP还有其他的版本,即x64的版本,但是x64版本是实验性质的,所以可以无视,直接使用x86版。至于Thead Safe(线程安全)/Non Thead Safe(非线程安全)的区别我也不清楚,但是FastCGI是单线程执行的,因而不需要线程安全版本,去掉线程安全的防护后可以提高执行效率;而ISAPI方式则是多线程模式,所以需要采用线程安全版本。
另外,VC9是指Microsoft Visual C++ 9.0 32位是安装 Visual C++库的运行时组件,使用户能够在计算机上运行使用Visual C++开发的应用程序。必须安装了之后才能正常运行。可以在 微软常用运行库合集 下载版本进行安装。注意,由于我们选用的是x86的php,所以只能安装32位的vc包。
nginx+php方案
nginx安装
在 https://nginx.org/en/download.html 下载Stable version版本。下载好之后直接解压至D:\nginx目录下,用 管理员权限 打开cmd,切换到nginx解压目录下,输入命令 start nginx.exe 或者 nginx.exe ,回车后会出现一个黑色的弹窗一闪而过。直接访问http://localhost/,如果能正常访问,就表示nginx访问正常了。
常见nginx操作:
1 | start nginx.exe ## 启动服务 |
nginx配置服务
在https://github.com/kohsuke/winsw/releases下载winSW,将 WinSW.NET4.exe 复制到 D:\nginx\ 目录中,并将名字修改为 nginxservice.exe ,新建一个空的 nginxservice.xml 文件(名字要与nginxservice.exe 名字前缀保持一致,但后缀是xml) ,其内容:
1 | <service> |
这里有3处必须修改: <logpath> 、 <executable> 、 <stopexecutable>,然后用管理员权限打开cmd,运行nginxservice.exe install,然后运行net start nginx即可。
配置php
在php的目录下可以找到php.ini-development文件,复制一份并将文件名修改为php.ini。然后修改配置文件内容:
1 | short_open_tag=On |
命令行下输入如下命令启动php,不报错表示启动成功。
1 | D:/web/php>php-cgi.exe -b 127.0.0.1:9000 -c D:/web/php/php.ini |
然后在nginx的配置文件server配置块中,加上以下规则:
1 | location ~ .php$ { |
在D:/nginx/html下新建一个phpinfo.php,加入<?php phpinfo();?>内容后保存后,重启nginx之后,访问http://localhost/phpinfo.php能看到php信息表示安装成功。
配置php-cgi为服务
由于php-cgi.exe会自动退出,而xxfpm是php-cgi.exe进程管理工具,解决windows环境下php-cgi自动死掉问题,下载地址为https://github.com/78/xxfpm ,而winserv.exe是命令调用工具,可以让他符合注册为windows系统服务标准的程序,通过它来调用xxfpm。
1 | @echo off |
直接copy上面代码,改名install.bat,执行即可。当然上面的目录路径要修改成你的。这步操作完,php-cgi.exe会随winserv.exe的启动而启动,但还没完,因为这时候的php-cgi.exe很脆弱,500个请求就会down掉。
在【运行】里输入regedit.exe,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\nginxPHP-CGI,即刚才注册的服务键值,把CommandLine的值修改为:C:\nginx\php\xxfpm.exe "C:/nginx/php/php-cgi.exe -c C:/nginx/php/php.ini" -n 5 -i 127.0.0.1 -p 9000,注意修改成自己的目录。上面的命令就是通过xxfpm.exe去管理php-cgi.exe进程,-n 5是打开5个进程,可以自行修改。
附上所有工具包、bat文件:百度网盘
注意,winserv.exe不能删除,所以此文件需要放置在常用路径。注册完服务之后,效果图如下:

脚本启动脚本方法
使用服务的方法,运行比较麻烦。并且运行的时间也比较久,基于此,可以直接使用cmd来运行,但是就运行在前台,有一个黑黑的运行框,我们可以使用 RunHiddenConsole.zip 使进程运行在后台,就清爽很多了。下载好工具之后,放置到nginx的安装目录下,将以下内容保存为start.bat:
1 | REM REM是bat文件的注释类似于php的// |
将以下内容保存为stop.bat:
1 | @ECHO off |
还有一个重启bat,可以参考Windows后台启动、停止和重启WNMP脚本
在windows环境下面配置多版本的PHP,其实就是下载多个php包,然后运行php-cgi.exe,然后绑定到不同的端口上面即可实现。
IIS + PHP 方案
此方案用得比较普遍。首先安装IIS组件,此步略。网上有很多方法的。
全手工方案
跟上述nginx+PHP包一样,下载php包,配置php.ini,此步请参考上面的文章。
打开IIS管理器,选择服务器节点
![]()
打开“处理程序映射”,

“添加模块映射”,

请求路径:*.php
模块:FastCgiModule
可执行文件(可选):d:\php\php-cgi.exe
名称:php-fastcgi

点“是”保存。
![]()
双击“FastCGI设置”,
![]()
选中路径,点击“编辑”,

点击“添加”,
Name:PHP_FCGI_MAX_REQUESTS
Value:10000
最后,“确定”即可。
通过phpManager配置
phpManager是微软发布的一个IIS 中管理php的配置工具,主要功能如下:关联PHP和IIS,并列运行多个PHP版本在同一台服务器上,甚至在同一网站等。其官网为https://www.phpmanager.xyz/,目前最新版本是2.3,在https://github.com/phpmanager/phpmanager/releases可以下载到。
我们先把php下载到机器上,然后只需要解压即可,不需要去修改Php.ini的配置。
再继续安装phpManager之前,必须安装.net 3.5,安装方法如下:

再双击安装phpManager即可。安装完后,会在IIS 中多出来一个图标,如图所示:

打开之后,如果没有配置PHP,会有一个黄色的警告。如下:

这时可以点击注册新 PHP 版本,按浏览按钮,选择php-cgi.exe文件即可:

只需要这一步,PHP Manager就帮我们生成了php.ini配置文件、在“处理程序映射”中自动添加了FastCgiModule模块的映射、“FastCgi设置“中也己生成,并且自动开启了几个常用模块。
web平台安装程序
在https://www.microsoft.com/web/downloads/platform.aspx 或者 https://www.iis.net/downloads 处下载Web Platform Installer,下载好了之后,直接安装即可。安装完成之后 ,在IIS上面会出现web平台安装程序:

双击打开之后 ,搜索PHP即可。

由于此库在国外,下载比较慢,也有可以加载不了这个安装程序,所以在这个方法行通的时候,可以使用phpManager方法来配置,也是很快的,毕竟php.ini的配置都不需要去修改了。
第三方组件
第三方组件也有很多方法,直接集成了一键部署的功能。想省事的,可以直接下载拿来安装。
- phpstudy:https://www.xp.cn/download.html
- 护卫神·Nginx大师:https://www.huweishen.com/soft/nginx/
- XAMPP:https://www.apachefriends.org/zh_cn/download.html ,这是一个apache+PHP的环境。
个人看法,在windows环境下面配置PHP,如果没有特殊需求,还是使用IIS+phpManger配置。