有一个运行几分钟的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中没有任何内容。
答案 0 :(得分:3)
答案中的命令对我不起作用。
这是正确的:
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/
的积分答案 1 :(得分:2)
希望能挽救其他人的头发(我在这个头发上掏出了我自己的头发)
解决方案是增加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>