IIS 上的 PHP 显示 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 源代码,那么就像您在代码( <? instead of <?php )中使用 PHP 短标记并且您没有在 php.ini 中打开 short_tags 指令一样。

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

配置 IIS 以处理 PHP 请求

要使 IIS 承载 PHP 应用程序,

必须添加一个处理程序映射,告知 IIS 使用 FastCGI 协议将所有特定于 PHP 的请求传递到 PHP 应用程序框架。将 IIS 配置为使用 IIS 管理器处理 PHP 请求

  1. 打开 IIS 管理器。在服务器级别,双击"处理程序映射"。

  2. 在"操作"窗格中,单击"添加模块映射..."。在"添加模块映射"对话框中,指定配置设置,如下所示:请求路径:*.php模块:快速Cgi模块可执行文件:"C:[PHP 安装路径]''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 模块是否已添加到以下部分: