在Linux上,PHP-FPM超時問題通常是由于腳本執行時間過長導致的。要解決這個問題,你可以嘗試以下方法:
修改PHP配置文件(php.ini):
找到max_execution_time
設置項,將其值增加到一個更大的值,例如300(單位:秒)。如果找不到該設置項,請在文件末尾添加一行max_execution_time = 300
。然后重啟PHP-FPM服務使更改生效。
sudo service php-fpm restart
修改Nginx配置文件:
如果你使用的是Nginx作為Web服務器,可以在Nginx配置文件中設置proxy_read_timeout
和proxy_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
修改PHP-FPM配置文件(php-fpm.conf):
在PHP-FPM配置文件中,找到request_terminate_timeout
設置項,將其值增加到一個更大的值,例如300(單位:秒)。如果找不到該設置項,請在文件末尾添加一行request_terminate_timeout = 300
。然后重啟PHP-FPM服務使更改生效。
sudo service php-fpm restart
請注意,增加超時時間可能會導致服務器負載增加,因此請根據實際情況進行調整。同時,也要檢查你的代碼是否存在性能瓶頸,優化代碼以減少執行時間。