PHP 在 IIS 上显示 php 代码而不是页面

PHP on IIS Displaying php code instead of page

我在 IIS (Windows Server 2008) 上安装了 PHP 5.3,按照说明操作 http://php.net/manual/en/install.windows.iis7.php

当我打开 php 页面时,我得到的是 php 代码而不是已处理的页面,为什么会这样,我该如何解决?

如果您在浏览器中看到您的 PHP 源代码,那么这就像您在代码中使用 PHP 短标签 ( <? instead of <?php ) 而您没有在 php.ini 中启用 short_tags 指令。

另一种可能是您的处理程序映射不正确?

配置 IIS 以处理 PHP 请求

要让 IIS 托管 PHP 应用程序,您必须添加一个处理程序映射,告诉 IIS 使用 FastCGI 协议将所有 PHP 特定的请求传递给 PHP 应用程序框架. 使用 IIS 管理器

配置 IIS 以处理 PHP 请求
  1. 打开 IIS 管理器。在服务器级别,双击处理程序映射。

  2. 在“操作”窗格中,单击“添加模块映射...”。在“添加模块映射”对话框中,指定配置设置如下: 请求路径:*.php 模块:FastCgiModule 可执行文件:"C:[Path to your PHP installation]\php-cgi.exe" 名称:PHP 通过 FastCGI

  3. 单击确定。

  4. 在询问您是否要为此可执行文件创建 FastCGI 应用程序的“添加模块映射”确认对话框中,单击“是”。

  5. 通过在 C:\inetpub\wwwroot 文件夹中创建一个包含以下代码的 phpinfo.php 文件来测试处理程序映射是否正常工作:

  1. 打开浏览器并导航至 //dns-or-ip-to-server/phpinfo.php。如果一切设置正确,您将看到标准的 PHP 信息页面。

注意:如果您在“模块”列表中没有看到 FastCgiModule,则该模块未注册或未启用。要检查 FastCGI 模块是否已注册,请打开位于 %windir%\windows\system32\config\applicationHost.config 的 IIS 配置文件并检查该部分中是否存在以下行:

在同一文件中,还要检查 FastCGI 模块是否已添加到该部分: