简体   繁体   中英

How to stop 30s timeouts in MAMP?

I am running WordPress code (to import 25 posts) that trips a 500 server error (reported via ajax) after 30 seconds, but the process continues on the server in the background.

For the life of me, I cannot find any evidence of a 30-seconds setting...

php7.4.33.ini...

max_execution_time = 1300
max_input_time = 3000
memory_limit = 512M

apache_error.log is showing pairs of these...

[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"

... though I'm not sure is strictly limited to the 500 events.

This is in Apache's 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 and max_input_time are not in .htaccess

I added...

<IfModule mod_php5.c>
    php_value max_execution_time 300
    php_value max_input_time 300
</IfModule>

... but it didn't change (though I can't confirm if I have the php5 module).

Adding this...

<IfModule mod_fcgid.c>
    FcgidIdleTimeout 600
    FcgidProcessLifeTime 600
</IfModule>

... and this...

<IfModule mod_fcgid.c>
    FcgidIdleTimeout 300
    FcgidProcessLifeTime 3600
    FcgidMaxProcesses 128
    FcgidMaxProcessesPerClass 8
    FcgidMinProcessesPerClass 0
    FcgidConnectTimeout 300
    FcgidIOTimeout 300
</IfModule>

... also didn't change it.

I believe I found answer for your question.

Just modify the line to state shown bellow and it should be working for you.

MAMP_FastCgiServer_MAMP -idle-timeout 3600

It's really weird that MAMP doesn't have setting for this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM