温馨提示×

如何解决Linux上php-fpm超时问题

小樊
48
2025-10-01 12:19:37
栏目: 编程语言

在Linux上,PHP-FPM超时问题通常是由于脚本执行时间过长导致的。要解决这个问题,你可以尝试以下方法:

  1. 修改PHP配置文件(php.ini): 找到max_execution_time设置项,将其值增加到一个更大的值,例如300(单位:秒)。如果找不到该设置项,请在文件末尾添加一行max_execution_time = 300。然后重启PHP-FPM服务使更改生效。

    sudo service php-fpm restart
    
  2. 修改Nginx配置文件: 如果你使用的是Nginx作为Web服务器,可以在Nginx配置文件中设置proxy_read_timeoutproxy_connect_timeout参数,以允许更长的响应时间。例如,将这两个参数的值设置为300秒:

    location ~ \.php$ {
        ...
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        fastcgi_param  SCRIPT_NAME  $fastcgi_script_name;
        fastcgi_param  REQUEST_URI  $request_uri;
        fastcgi_param  CONTENT_TYPE $content_type;
        fastcgi_param  CONTENT_LENGTH $content_length;
    
        # 设置超时时间
        fastcgi_read_timeout 300s;
        fastcgi_connect_timeout 300s;
    }
    

    修改完成后,重启Nginx服务使更改生效。

    sudo service nginx restart
    
  3. 修改PHP-FPM配置文件(php-fpm.conf): 在PHP-FPM配置文件中,找到request_terminate_timeout设置项,将其值增加到一个更大的值,例如300(单位:秒)。如果找不到该设置项,请在文件末尾添加一行request_terminate_timeout = 300。然后重启PHP-FPM服务使更改生效。

    sudo service php-fpm restart
    

请注意,增加超时时间可能会导致服务器负载增加,因此请根据实际情况进行调整。同时,也要检查你的代码是否存在性能瓶颈,优化代码以减少执行时间。

0