【问题标题】:HTTP Error 500.0 - Internal Server Error An unknown FastCGI error occuredHTTP 错误 500.0 - 内部服务器错误发生未知的 FastCGI 错误
【发布时间】:2011-05-30 12:08:15
【问题描述】:

我在带有 Plesk 10 的 Windows Server 2008 上运行 IIS7。我在 plesk 下有一个网站,还有一个不在 plesk 下且仅在 IIS 上的网站。 plesk下的网站成功运行php文件,但其他网站报错:

HTTP 错误 500.0 - 内部服务器
错误发生未知的 FastCGI 错误

模块 FastCgiModule
通知 ExecuteRequestHandler
处理程序 PHP5-FastCGI-php
错误代码 0x8007010b
请求的 URL http://*.com:80/test.php 物理
路径 C:\IIS*.com\test.php
登录方式匿名
登录用户匿名

PHP5-FastCGI-php 的配置与 plesk 下的站点完全相同。 php-cgi.exe 位于 C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP5\

编辑: 这是我的 php.ini,但我没有收到任何错误。

error_reporting = E_ALL & ~E_NOTICE
display_errors = On
display_startup_errors = Off
log_errors = On
error_log = "C:\Program Files (x86)\...\log\test.log"
error_log = syslog

【问题讨论】:

  • 已尝试但在 Windows 日志中没有错误,并且无法在 php 中记录错误...
  • 我已经包含了我的 php.ini 的一部分。没有与 php 相关的 .log 文件,也没有 php 产生的错误仍然..
  • 这和编程有什么关系?

标签: php iis iis-7.5


【解决方案1】:

授予读取和执行列出文件夹内容以供文件夹中的所有人

使用

C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP5

现在 php 已为每个应用程序池启动并运行。 plesk 的主要问题是,只有使用 psacln 成员的用户的应用程序池标识运行的站点。

【讨论】:

  • 谢谢!!!我最近才被介绍到 PHP 和 IIS 的恐怖,这让我从精神错乱中解救出来
  • 非常好 - 我刚刚在 IIS 中重新创建了一个站点,该站点的 PHP 文件夹由于应用程序池标识的更改而损坏。在对 PHP 本身设置正确的权限之后,现在一切都很好 - 很好的发现!谢谢。
【解决方案2】:

我认为比授予 EVERYONE 更好的是授予内置 IIS 组“IIS_IUSRS”读取、读取和执行并列出 PHP 文件夹上的文件夹内容。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,并寻找了 2 天的解决方案。这是反复试验。 错误代码为 0x8007010b。 在 IIS 日志中

    #Fields: ... sc-status sc-substatus sc-win32-status time-taken
             ... 500       0            267             4
    

    错误 0x8007010b 和 267(使用命令 NET HELPMSG 267)都表示 The directory name is invalid.

    解决方案:

    1. 授予对 IUSR 的完全访问权限:
      • 我的 webapp 文件夹
      • 包含要运行的可执行文件的文件夹(在我的例子中是 python.exe)
    2. 在 IIS 中转到 -> 身份验证(双击它)-> 选择匿名身份验证(应启用)-> 编辑... -> 选择“特定用户”设置 IUSR
    3. 选择根 IIS(单击)-> 身份验证(双击它)-> 选择匿名身份验证(应启用)-> 编辑... -> 选择“特定用户”设置 IUSR

    执行步骤 1-3 后,错误 500.0 消失了。在我的情况下,第 3 步丢失了。我认为这是一个重要的细节。

    希望对您有所帮助!

    【讨论】:

      【解决方案4】:

      前言:此解决方案适用于我的 Python Flask 应用程序

      如果您的文件权限正确,则问题可能出在您的应用程序池设置中。

      1. 转到 IIS 管理器
      2. 点击您服务器的Application Pools 标签
      3. 点击Set Application Pool Defaults...
      4. Process Model下的Identity设置为LocalSystem

      未来的读者,我花了几天时间寻找这个问题的解决方案。希望这可以在很短的时间内解决您的问题:)

      【讨论】:

        【解决方案5】:

        尝试在日志中查找更多信息。 然后尝试在面板的目录中查找所有 *.log 文件。有最新修改时间的请给个机会。

        日志不能只在 php.ini 中定义。尝试搜索它们——不要信任任何 *.ini 文件:)

        【讨论】:

          【解决方案6】:

          我遇到了同样的问题。一旦我尝试进入 phpmyadmin 页面,它会给我 500 错误响应。要解决这个问题:

          第 1 步)您必须在 php.ini(在 php 文件夹中)中启用扩展“extension=php_gd2.dll”、“extension=php_mbstring.dll”和“extension=php_mysql.dll”(如果您这样做了那已经然后转到第二步)。

          第 2 步)在 c: 中创建一个名为“temp”的文件夹,并在该文件夹中创建另一个名为“phpsessions”的文件夹,然后转到 php.ini(在 php 文件夹中)并查找“session.save_path” 并将引号之间的任何内容替换为您创建的 php 会话的位置,即“C:\temp\phpsessions”,不要忘记取消注释;

          祝我的极客们好运:P

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-10-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多