如何在Windows Server IIS发布PHP应用并配置公网URL访问?
如何在Windows Server 2016的IIS上发布PHP Web应用?
- 安装IIS及必要组件
打开服务器管理器,选择「添加角色和功能」,勾选「Web服务器(IIS)」,同时选中CGI、ISAPI扩展、ISAPI筛选器等依赖组件,完成安装后重启服务器。 - 下载并配置PHP
- 下载对应版本的PHP压缩包(IIS推荐线程安全TS版本),解压到本地目录如
C:\PHP。 - 复制
php.ini-production并重命名为php.ini,编辑配置:- 设置
extension_dir = "C:\PHP\ext" - 开启所需扩展(如
extension=mysqli、extension=curl) - 配置
fastcgi.impersonate = 1和cgi.fix_pathinfo = 1
- 设置
- 下载对应版本的PHP压缩包(IIS推荐线程安全TS版本),解压到本地目录如
- 配置IIS的FastCGI映射
- 打开IIS管理器,点击服务器节点,找到「FastCGI设置」,右键添加应用程序,指定可执行文件路径为
C:\PHP\php-cgi.exe。 - 进入目标站点的「处理程序映射」,添加模块映射:请求路径设为
*.php,模块选择FastCgiModule,可执行文件选刚才配置的php-cgi.exe,命名为PHP_via_FastCGI。
- 打开IIS管理器,点击服务器节点,找到「FastCGI设置」,右键添加应用程序,指定可执行文件路径为
- 部署应用并测试
- 设置站点物理路径为PHP应用的根目录,配置站点绑定(IP选服务器实际内网/公网IP,端口默认80,主机名按需填写)。
- 在站点根目录创建
info.php,内容为<?php phpinfo(); ?>,访问站点URL,能正常显示PHP信息页即为部署成功。
Windows Server 2019 IIS部署PHP 8.3.0后仅localhost可访问的解决方法
- 检查IIS站点绑定配置
打开IIS管理器,右键目标站点选择「编辑绑定」,确认IP地址不是仅127.0.0.1,改为「全部未分配」或服务器的实际内网/公网IP;若使用自定义端口,需确保后续访问时携带端口号。 - 配置Windows防火墙入站规则
打开Windows Defender防火墙高级设置,添加入站规则:允许TCP端口80(或自定义端口)的连接,应用到对应网络类型(内网/公网)。 - 排查DNS与本地映射问题
- 若使用域名访问,确认DNS服务器已添加A记录,将域名指向服务器公网IP;内网访问可在客户端hosts文件添加
服务器IP 目标域名的映射。 - 先尝试用服务器IP直接访问,排除域名解析故障。
- 若使用域名访问,确认DNS服务器已添加A记录,将域名指向服务器公网IP;内网访问可在客户端hosts文件添加
- 验证文件权限设置
确保站点物理路径的文件夹给IIS_IUSRS用户分配了读取、执行权限;检查FastCGI进程的运行身份是否有足够权限访问应用文件。 - 测试网络连通性
- 在客户端执行
ping 服务器IP,确认网络连通;若不通,检查服务器网络配置(如是否在NAT后、是否有公网IP)。 - 用
telnet 服务器IP 80测试端口是否开放,连接失败则回到防火墙和绑定配置重新排查。
- 在客户端执行
内容的提问来源于stack exchange,提问作者Byorsh19
相关产品推荐
相关产品推荐

