Windows IIS 安装 PHP 全攻略:从零搭建到正常运行
一、问题分析
很多人想在 Windows 服务器上用 IIS 跑 PHP 网站,比如 WordPress、Laravel、Discuz 或一些老旧的 PHP 项目,但真正动手时,经常会卡在这些地方:
- PHP 装好了,IIS 里却打不开页面;
- 访问 PHP 文件只显示源码,或者直接下载;
- 提示 500.19、500.0、FastCGI 错误;
- 扩展没装全,数据库连不上;
- 版本不兼容,旧程序跑不起来,新程序也报错。
其实,Windows IIS 安装 PHP 并不复杂,关键是按正确顺序来:
先装 IIS,再装 PHP,再配置 FastCGI,最后测试和排错。
下面我会按小白也能看懂的方式,一步一步讲清楚。
二、准备工作
在开始之前,先确认你的环境:
1. 系统要求
适合以下系统:
- Windows 10 / 11
- Windows Server 2012 / 2016 / 2019 / 2022
如果是服务器环境,建议使用 Windows Server,稳定性和兼容性更好。
2. 需要准备的东西
建议提前下载好:
- IIS 组件
- PHP Windows 版本
- Visual C++ 运行库
- 数据库软件(如果网站要连 MySQL)
- 一个测试用的
phpinfo.php文件
3. 推荐下载版本
建议使用 PHP 官方 Windows 版的 Non Thread Safe(NTS)版本,因为 IIS 下通常搭配 FastCGI 使用,NTS 更合适。
三、安装 IIS
如果你的系统还没装 IIS,先把它启用。
1. 打开 Windows 功能
操作步骤:
- 按
Win + R - 输入
optionalfeatures - 回车打开“Windows 功能”
2. 勾选 IIS 相关组件
至少勾选这些:
- Internet Information Services
- Web 管理工具
- 万维网服务
- 应用程序开发功能
- CGI
- ISAPI 扩展
- ISAPI 筛选器
- 常见 HTTP 功能
- 静态内容
- 默认文档
- HTTP 错误
其中最重要的是:
CGI 必须勾上,因为 PHP 在 IIS 里一般就是通过 FastCGI 跑起来的。
3. 安装完成后测试
安装后,浏览器访问:
http://localhost
如果能看到 IIS 默认页面,说明 IIS 已经正常工作。
四、安装 PHP
1. 下载 PHP
去 PHP 官方网站下载 Windows 版本,建议选择:
- Non Thread Safe
- x64
- 根据程序需求选 PHP 7.4、8.0、8.1、8.2 等版本
2. 解压到固定目录
例如:
C:\PHP
不要放在中文路径、空格太多的路径里,避免后面出问题。
3. 复制配置文件
在 PHP 解压目录里找到:
php.ini-development
复制一份并改名为:
php.ini
然后用记事本打开它,后面要修改。
五、配置 PHP
1. 设置 PHP 扩展目录
在 php.ini 中找到:
;extension_dir = "ext"
改成:
extension_dir = "C:\PHP\ext"
注意路径要和你的 PHP 实际安装位置一致。
2. 开启常用扩展
根据网站需求,建议至少开启这些扩展:
extension=curl
extension=gd
extension=mbstring
extension=mysqli
extension=pdo_mysql
extension=openssl
extension=zip
extension=fileinfo
extension=intl
如果是 WordPress、Discuz、Laravel 这类程序,这些扩展很常见。
3. 设置时区
找到:
;date.timezone =
改成:
date.timezone = Asia/Shanghai
不设置时区的话,日志时间可能乱掉。
4. 常见优化项
可以顺手改一下这些参数:
max_execution_time = 300
max_input_time = 300
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M
如果你要上传大文件、导入大数据库,这些参数很有用。
六、把 PHP 接入 IIS
这一步是关键,很多人就是卡在这里。
方法一:通过 IIS 管理器手动配置
1. 打开 IIS 管理器
按 Win + R,输入:
inetmgr
回车打开 IIS 管理器。
2. 添加 FastCGI 应用程序
在左侧选中服务器名称,找到 “FastCGI 设置”。
如果没有这个入口,说明 CGI 功能没装好,回到前面检查 IIS 组件。
点击右侧 “添加应用程序”,填写:
-
可执行文件:
C:\PHP\php-cgi.exe -
监视器:默认即可
3. 添加处理程序映射
在站点级别或服务器级别,打开 “处理程序映射”,点击 “添加模块映射”,填写:
- 请求路径:
*.php - 模块:
FastCgiModule - 可执行文件:
C:\PHP\php-cgi.exe - 名称:
PHP via FastCGI
点击确定后,系统可能会问是否创建 FastCGI 应用程序,选“是”。
七、测试 PHP 是否正常
1. 创建测试文件
在网站根目录,比如:
C:\inetpub\wwwroot
新建一个文件:
phpinfo.php
内容如下:
<?php
phpinfo();
2. 浏览器访问
输入:
https://www.liubo.wang/phpinfo.php
如果页面显示 PHP 版本、配置项、扩展信息,说明安装成功。
八、常见问题与解决方案
1. 访问 PHP 文件直接下载,或者显示源码
问题分析
说明 IIS 没有正确把 .php 文件交给 PHP 处理。
解决方案
检查以下几点:
- 是否已添加
*.php的处理程序映射; php-cgi.exe路径是否正确;- CGI 功能是否已启用;
- PHP 版本是否为 NTS;
- IIS 站点是否有权限访问 PHP 目录。
注意事项
不要把 PHP 配成普通脚本解释器,IIS 下推荐走 FastCGI。
2. 出现 500.19 错误
问题分析
这个错误通常和 IIS 配置文件、权限、模块缺失有关。
解决方案
可以按下面顺序排查:
- 检查
web.config是否有语法错误; - 检查 IIS 是否安装了 CGI 功能;
- 检查站点目录权限;
- 检查 PHP 处理程序映射是否正确;
- 检查是否安装了对应的 Visual C++ 运行库。
注意事项
如果是新装环境,Visual C++ 运行库缺失非常常见,PHP 官方包通常需要对应版本运行库支持。
3. 出现 500.0 错误
问题分析
这类错误往往是 PHP 程序本身崩了,或者扩展加载失败。
解决方案
检查:
php.ini是否写错;- 某个扩展是否不兼容;
php-cgi.exe是否能单独运行;- 是否缺少 DLL 文件;
- 目录权限是否正确。
排查方法
可以先在命令行测试:
C:\PHP\php.exe -v
如果连版本都不显示,说明 PHP 本身就没装好。
4. 提示缺少运行库
问题分析
PHP Windows 版依赖 Visual C++ 运行库。
解决方案
安装对应的 Microsoft Visual C++ Redistributable。
一般来说,PHP 官方下载页会标明所需版本,比如 VC15、VC16 等。
注意事项
x64 PHP 要装 x64 运行库,不要装错架构。
5. 数据库连不上
问题分析
常见原因:
- 没开
mysqli或pdo_mysql - MySQL 服务没启动
- 账号密码错了
- 防火墙拦了端口
解决方案
先检查 php.ini 中是否启用了:
extension=mysqli
extension=pdo_mysql
然后确认 MySQL 正常运行,端口一般是 3306。
九、权限设置建议
IIS 运行 PHP 程序时,权限很重要。
1. 给站点目录合适权限
网站目录建议给这些账户读取权限:
IIS_IUSRSIUSR
如果程序需要写入,比如上传目录、缓存目录、日志目录,再单独给写入权限。
2. 不要乱给管理员权限
很多人图省事,把整个网站目录都给了完全控制,这是不安全的。
建议原则:
- 网站主体目录:只读
- 上传目录:写入
- 缓存目录:写入
- 配置文件:尽量只读
十、推荐的目录结构
一个比较清晰的结构可以这样放:
C:\inetpub\wwwroot\site
C:\PHP
C:\site\logs
C:\site\uploads
C:\site\cache
这样以后维护更方便,也不容易乱。
十一、进阶优化建议
1. 修改 PHP FastCGI 超时
如果网站比较大,或者执行任务较慢,可以在 IIS 的 FastCGI 设置里调整:
- Activity Timeout
- Request Timeout
- Instance MaxRequests
一般默认能用,但大型项目建议适当调高。
2. 开启 OPcache
如果是生产环境,建议开启 OPcache,能明显提升 PHP 性能。
在 php.ini 中启用:
zend_extension=opcache
opcache.enable=1
3. 使用独立站点目录
不要把多个项目混在一个目录里,最好每个站点单独一个站点、一个应用池,方便隔离和排错。
4. 关闭危险函数
如果是公开服务器,可以适当限制一些危险函数,比如:
disable_functions=exec,system,shell_exec,passthru,proc_open,popen
具体要看你项目是否依赖这些函数。
十二、适合新手的最简流程
如果你只想快速搭起来,按这个顺序做就行:
- 安装 IIS;
- 勾选 CGI;
- 下载 PHP NTS 版并解压到
C:\PHP; - 复制并修改
php.ini; - 开启常用扩展;
- 用 IIS 配置
*.php到C:\PHP\php-cgi.exe; - 创建
phpinfo.php测试; - 如果报错,先查运行库和权限。
十三、总结
Windows IIS 安装 PHP 的核心就三步:
- IIS 装对
- PHP 版本选对
- FastCGI 配对好
只要这三步没问题,PHP 网站基本就能跑起来。
真正容易出错的地方,通常不是 PHP 本身,而是:
- 组件没勾全;
- 运行库缺失;
- 处理程序映射错了;
- 权限没给对;
php.ini配置写错。
如果你是第一次搭建,建议先用 phpinfo() 测试环境,再部署真实网站。这样出问题时更容易定位。

还没有评论,来说两句吧...