windows iis安装php

老刘

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 Server,稳定性和兼容性更好。

2. 需要准备的东西

建议提前下载好:

  • IIS 组件
  • PHP Windows 版本
  • Visual C++ 运行库
  • 数据库软件(如果网站要连 MySQL)
  • 一个测试用的 phpinfo.php 文件

3. 推荐下载版本

建议使用 PHP 官方 Windows 版的 Non Thread Safe(NTS)版本,因为 IIS 下通常搭配 FastCGI 使用,NTS 更合适。


三、安装 IIS

如果你的系统还没装 IIS,先把它启用。

1. 打开 Windows 功能

操作步骤:

  1. Win + R
  2. 输入 optionalfeatures
  3. 回车打开“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 配置文件、权限、模块缺失有关。

解决方案

可以按下面顺序排查:

  1. 检查 web.config 是否有语法错误;
  2. 检查 IIS 是否安装了 CGI 功能;
  3. 检查站点目录权限;
  4. 检查 PHP 处理程序映射是否正确;
  5. 检查是否安装了对应的 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. 数据库连不上

问题分析

常见原因:

  • 没开 mysqlipdo_mysql
  • MySQL 服务没启动
  • 账号密码错了
  • 防火墙拦了端口

解决方案

先检查 php.ini 中是否启用了:

extension=mysqli
extension=pdo_mysql

然后确认 MySQL 正常运行,端口一般是 3306


九、权限设置建议

IIS 运行 PHP 程序时,权限很重要。

1. 给站点目录合适权限

网站目录建议给这些账户读取权限:

  • IIS_IUSRS
  • IUSR

如果程序需要写入,比如上传目录、缓存目录、日志目录,再单独给写入权限。

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

具体要看你项目是否依赖这些函数。


十二、适合新手的最简流程

如果你只想快速搭起来,按这个顺序做就行:

  1. 安装 IIS;
  2. 勾选 CGI;
  3. 下载 PHP NTS 版并解压到 C:\PHP
  4. 复制并修改 php.ini
  5. 开启常用扩展;
  6. 用 IIS 配置 *.phpC:\PHP\php-cgi.exe
  7. 创建 phpinfo.php 测试;
  8. 如果报错,先查运行库和权限。

十三、总结

Windows IIS 安装 PHP 的核心就三步:

  • IIS 装对
  • PHP 版本选对
  • FastCGI 配对好

只要这三步没问题,PHP 网站基本就能跑起来。
真正容易出错的地方,通常不是 PHP 本身,而是:

  • 组件没勾全;
  • 运行库缺失;
  • 处理程序映射错了;
  • 权限没给对;
  • php.ini 配置写错。

如果你是第一次搭建,建议先用 phpinfo() 测试环境,再部署真实网站。这样出问题时更容易定位。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,1人围观)

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

目录[+]