首先确认PHP运行模式,再根据SAPI类型修改对应php.ini中的max_execution_time,并调整PHP-FPM或Web服务器相关超时设置,最后验证配置生效。

如果您在Ubuntu系统中配置了PHP的超时时间,但发现脚本运行仍然超出设定限制,可能是由于多个配置层或服务类型导致设置未生效。以下是排查和解决该问题的具体步骤:
不同的PHP运行方式(如Apache模块、FPM、CLI)会读取不同的配置文件,超时设置需针对具体环境修改。应先明确当前使用的是哪种SAPI(Server API)。
1、创建一个PHP文件,写入<?php phpinfo(); ?>并访问该页面。
2、查找“Server API”项,确定是Apache、FPM还是CLI等模式。
立即学习“PHP免费学习笔记(深入)”;
3、根据结果定位对应的php.ini或配置文件路径。
该设置控制脚本最大执行时间,适用于所有运行模式,但必须在正确的php.ini文件中修改。
1、找到对应SAPI的php.ini文件位置,通常位于/etc/php/<版本>/apache2/php.ini或/etc/php/<版本>/fpm/php.ini。
2、搜索max_execution_time,将其值改为所需秒数,例如max_execution_time = 300。
3、保存文件后重启相应的服务,如Apache或PHP-FPM。
当使用PHP-FPM时,除了php.ini外,进程管理器自身的超时参数也会影响脚本执行。
1、打开PHP-FPM的pool配置文件,通常路径为/etc/php/<版本>/fpm/pool.d/www.conf。
2、检查并设置以下参数:
request_terminate_timeout = 300(强制终止请求时间)
request_slowlog_timeout = 60(记录慢请求日志的时间阈值)
3、修改完成后执行sudo systemctl reload php<版本>-fpm使配置生效。
Apache或Nginx可能设置了独立于PHP的请求超时,这会导致即使PHP允许长时间运行,请求仍被提前中断。
1、对于Nginx,编辑站点配置文件,确保fastcgi_read_timeout足够大:
fastcgi_read_timeout 300;
2、对于Apache,若使用mod_proxy_fcgi,检查ProxyTimeout指令是否设置合理值。
3、修改后重启Web服务器:sudo systemctl restart nginx或sudo systemctl restart apache2。
在命令行执行PHP脚本时,不会受Web服务器或FPM影响,但仍需确认是否加载了预期的配置文件。
1、运行php -i | grep "max_execution_time"查看实际生效值。
2、如果需要永久更改,编辑CLI使用的php.ini文件,路径可通过php --ini查看。
3、也可在执行时通过命令行覆盖:php -d max_execution_time=300 script.php。
以上就是如何解决Ubuntu上PHP超时设置无效的解决办法?的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号