You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10下IIS无法正确解析PHP代码:访问phpinfo()显示空白页

IIS运行PHP返回原始文件内容问题排查

在Win10机器上配置IIS运行PHP后,访问index.php时显示空白页,浏览器开发者工具显示返回的是PHP文件原始内容。

测试文件内容:

<?php
    phpinfo();
?>

已完成的配置操作:

  • 在Windows功能中安装CGI组件
  • 将PHP 8.1.2 x86 Non Thread Safe版本解压至C:\php
  • 按教程调整php.ini配置
  • 在系统环境变量中添加C:\php路径
  • 在IIS中配置PHP处理程序映射
  • 启用IIS的FastCGI模块

启用IIS失败请求跟踪后,日志片段如下:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
 <System>
  <Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
  <EventID>0</EventID>
  <Version>1</Version>
  <Level>4</Level>
  <Opcode>43</Opcode>
  <Keywords>0x0</Keywords>
  <TimeCreated SystemTime="2022-11-15T15:58:47.038Z"/>
  <Correlation ActivityID="{8000000A-0005-FF00-B63F-84710C7967BB}"/>
  <Execution ProcessID="5540" ThreadID="1392"/>
  <Computer>SRV01</Computer>
 </System>
 <EventData>
  <Data Name="ContextId">{8000000A-0005-FF00-B63F-84710C7967BB}</Data>
  <Data Name="OldHandlerName"></Data>
  <Data Name="NewHandlerName">PHP_via_FastCGI</Data>
  <Data Name="NewHandlerModules">FastCgiModule</Data>
  <Data Name="NewHandlerScriptProcessor">C:\php\php-cgi.exe</Data>
  <Data Name="NewHandlerType"></Data>
 </EventData>
 <RenderingInfo Culture="de-DE">
  <Opcode>HANDLER_CHANGED</Opcode>
 </RenderingInfo>
 <ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
  <EventGuid>{D42CF7EF-DE92-473E-8B6C-621EA663113A}</EventGuid>
 </ExtendedTracingInfo>
</Event>

问题排查及解决步骤

  1. 检查处理程序映射优先级
    确认IIS中*.php的处理程序映射顺序在静态文件映射之前,避免静态文件处理模块先接管请求。可在IIS管理器的站点→处理程序映射→查看排序,调整PHP_via_FastCGI到靠前位置。
  2. 验证php-cgi.exe可用性
    打开命令提示符,执行C:\php\php-cgi.exe -v,若提示缺少vcruntime140.dll等文件,下载安装Visual C++ Redistributable for Visual Studio 2019 x86版本,这是PHP 8.1运行的必要依赖。
  3. 核对php.ini关键配置
    确保php.ini中以下设置正确:
    cgi.force_redirect = 0
    fastcgi.impersonate = 1
    extension_dir = "C:\php\ext"
    
    注意php.ini需从解压包中的php.ini-development或php.ini-production重命名而来,避免使用空白配置文件。
  4. 检查权限设置
    • 确保站点应用池的身份(默认是ApplicationPoolIdentity)对C:\php目录有读取权限,对站点根目录有读取、执行权限。
    • 右键C:\php→属性→安全→添加IIS AppPool\你的应用池名称,赋予读取和执行权限。
  5. 确认FastCGI配置
    在IIS管理器的FastCGI设置中,找到指向C:\php\php-cgi.exe的条目:
    • 点击编辑,在环境变量中添加PHP_FCGI_MAX_REQUESTS=1000
    • 确认“实例最大数”设置合理(默认4即可)
  6. 重启IIS服务
    执行命令行iisreset,强制刷新所有IIS配置,确保修改生效。

内容的提问来源于stack exchange,提问作者iTob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:31:05