2026-10-26 01:03:19
Nginx与PHP结合使用时,PHP脚本执行超60秒后跳转404的问题,通常由Nginx或PHP的超时设置不当导致,可通过调整相关参数、检查配置及优化脚本解决。
一、调整PHP超时设置max_input_time:定义解析输入数据(如POST请求)的最大时间,建议设为与max_execution_time相近的值(如1800秒)。
memory_limit:确保脚本有足够内存执行,若脚本处理大数据或复杂计算,需适当提高(如256M或512M)。
fastcgi_read_timeout 600s;:控制Nginx等待PHP-FPM返回数据的超时时间,建议设为比PHP的max_execution_time更长(如600秒)。
fastcgi_connect_timeout 60s;:Nginx与PHP-FPM建立连接的超时时间。
fastcgi_send_timeout 300s;:Nginx向PHP-FPM发送请求的超时时间。
确认Nginx配置中的fastcgi_pass路径(如unix:/var/run/php/php8.1-fpm.sock)与PHP-FPM实际监听路径一致。
检查PHP脚本文件权限(如755)及所属用户组(如www-data),确保Nginx和PHP-FPM有权限读取。
减少数据库查询次数,使用索引优化慢查询。
将耗时任务(如文件处理、外部API调用)改为异步执行。
若调整后问题仍存在,需进一步检查Nginx和PHP-FPM的配置文件语法(如nginx -t测试配置),或考虑使用工具(如Strace)跟踪脚本执行过程。