我正在运行 WordPress 代码(导入 25 个帖子),它在 30 秒后触发 500 服务器错误(通过 ajax 报告),但该过程在后台的服务器上继续进行。
对于我的一生,我找不到任何 30 秒设置的证据......
php7.4.33.ini...
max_execution_time = 1300
max_input_time = 3000
memory_limit = 512M
apache_error.log 显示成对的...
[Sat Apr 22 14:41:31.336668 2023] [fastcgi:error] [pid 10888] [client ::1:59639] FastCGI: comm with server "/Applications/MAMP/fcgi-bin/php7.4.33.fcgi" aborted: idle timeout (30 sec)
[Sat Apr 22 14:41:31.391265 2023] [fastcgi:error] [pid 10888] [client ::1:59639] FastCGI: incomplete headers (0 bytes) received from server "/Applications/MAMP/fcgi-bin/php7.4.33.fcgi"
...虽然我不确定是否严格限于 500 个事件。
这是在 Apache 的 httpd.conf 中...
<IfModule mod_fastcgi.c>
# URIs that begin with /fcgi-bin/, are found in /var/www/fcgi-bin/
Alias /fcgi-bin/ "/Applications/MAMP/fcgi-bin/"
# Anything in here is handled as a "dynamic" server if not defined as "static" or "external"
<Directory "/Applications/MAMP/fcgi-bin/">
SetHandler fastcgi-script
Options +ExecCGI
</Directory>
# Anything with one of these extensions is handled as a "dynamic" server if not defined as
# "static" or "external". Note: "dynamic" servers require ExecCGI to be on in their directory.
AddHandler fastcgi-script .fcgi .fpl
MAMP_ActionPhpCgi_MAMP
FastCgiIpcDir /Applications/MAMP/Library/logs/fastcgi
MAMP_FastCgiServer_MAMP
<IfModule mod_setenvif.c>
SetEnvIf Authorization "(.+)" HTTP_AUTHORIZATION=$1
</IfModule>
</IfModule>
max_execution_time
和 max_input_time
不在 .htaccess 中
我加了...
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value max_input_time 300
</IfModule>
...但它没有改变(虽然我无法确认我是否有 php5 模块)。
添加这个...
<IfModule mod_fcgid.c>
FcgidIdleTimeout 600
FcgidProcessLifeTime 600
</IfModule>
...还有这个...
<IfModule mod_fcgid.c>
FcgidIdleTimeout 300
FcgidProcessLifeTime 3600
FcgidMaxProcesses 128
FcgidMaxProcessesPerClass 8
FcgidMinProcessesPerClass 0
FcgidConnectTimeout 300
FcgidIOTimeout 300
</IfModule>
...也没有改变它。