【问题标题】:Internal server error 500 after 90 seconds of PHP script runningPHP 脚本运行 90 秒后内部服务器错误 500
【发布时间】:2013-07-24 02:58:03
【问题描述】:

有一个运行几分钟的 php 脚本。它会在服务器上创建大量(最多 10000 个)小 (2-20K) 文件。

由于某种原因,大约 90 秒后,我总是收到 500 内部服务器错误。我认为这可能是一些 php.ini 问题,所以我在那里编辑了一些值:

max_execution_time = 1000
max_input_time = 1000
default_socket_timeout = 1000
memory_limit = 400M
post_max_size = 100M
file_uploads = On
upload_max_filesize = 100M

我还检查了这些新设置是否通过使用 phpinfo() 发生,并且已经看到它们确实生效了。

为了使我的脚本正常工作,我还可以做什么/更改?

PHP5.5 Windows Server 2008 R2、SP1、 不幸的是,只有 600 MB 的物理内存 errors_log 中没有任何内容。

【问题讨论】:

  • CLI 还是 CGI?如果使用 php-fpm,您还应该在 php-fpm.conf 中更改时间限制

标签: php iis timeout


【解决方案1】:

希望能拯救别人的头发(这个我自己拔的差不多)

解决办法是增加 FastCGI 活动超时时间。
使用 IIS 7 命令行工具 appcmd 修改 IIS 配置 XML 文件。

以管理员模式运行cmd

要检查当前设置,请使用:

%windir%\system32\inetsrv\appcmd list config -section:system.webServer/fastCgi

添加活动超时(假设CGI位置是C:\php\php-cgi.exe):

%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='C:\php\php-cgi.exe'].activityTimeout:600

这个输出现在应该类似于:-

<system.webServer>
<fastCgi>
<application fullPath="C:\PHP\php-cgi.exe" activityTimeout="600" instanceMaxRequests="10000">
<environmentVariables>
<environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" />
</environmentVariables>
</application>
</fastCgi>
</system.webServer>

【讨论】:

    【解决方案2】:

    答案帖子中的命令对我不起作用。

    这是正确的:

    C:\Windows\System32\inetsrv>appcmd set config -section:system.webServer/fastCgi "-[fullPath='C:\Program Files (x86)\PHP\v5.2\php-cgi.exe'].activityTimeout:3600"
    

    注意双引号。 感谢http://www.bokko.nl/increase-fastcgi-php-activitytimeout-in-iis7/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多