您现在的位置是: 首页 > PHP PHP
执行40秒断开,90秒断开,自动断开,解决 PHP 执行时间过长导致断开连接的问题
冬寂
2023-12-07 16:10:40
【PHP】
1541人已围观
当遇到 PHP 脚本执行时间超过40秒导致断开连接的问题时,通常需要调整相关的服务器和 PHP-FPM(FastCGI Process Manager)配置。
解决 PHP 执行时间过长导致断开连接的问题
在搭建 PHP 环境的过程中,可能会遇到 PHP 脚本执行时间过长导致断开连接的问题。这可能是由于服务器或 PHP-FPM 设置中的执行时间限制引起的。本文将介绍如何通过调整相关设置来解决这个问题。
1. 调整 PHP 脚本执行时间限制
在 PHP 脚本中,可以通过以下方式调整执行时间限制:
set_time_limit(0);
ini_set("max_execution_time", 600);
ini_set("default_socket_timeout", 600);
这将确保 PHP 脚本的执行时间不受限制,并将最大执行时间和默认套接字超时设置为 600 秒。
2. 调整 MySQL 查询超时
在处理涉及数据库查询的脚本中,有时候也需要调整 MySQL 查询的超时时间。可以通过以下方式在 PHP 脚本中设置:
在连接数据库之前设置查询超时时间
ini_set('mysql.connect_timeout', 600);
这会将 MySQL 连接的查询超时时间设置为 600 秒。
3. 调整 FastCGI 设置(针对 Apache)
在使用 Apache 作为 Web 服务器,并启用了 FastCGI 模块时,需要调整 FastCGI 的相关设置。在 Apache 配置文件中增加如下配置:
<IfModule mod_fcgid.c>
FcgidProcessLifeTime 8200
FcgidIOTimeout 8200
FcgidConnectTimeout 4000
</IfModule>
这将调整 FastCGI 进程的生命周期、I/O 超时和连接超时。
4. 调整 FastCGI 和 PHP-FPM 设置(针对 Nginx)
如果使用 Nginx 作为 Web 服务器,并启用了 FastCGI 或 PHP-FPM,可以通过以下方式调整相关设置:
对于 FastCGI:
fastcgi_read_timeout 600;
这会将读取响应的超时时间设置为 600 秒。
对于 PHP-FPM:
在 PHP-FPM 的配置文件中,尝试增加以下设置:
request_terminate_timeout = 600
process_control_timeout = 600
这会分别定义 PHP-FPM 进程的终止时间和 master 进程等待 worker 进程完成的最长时间。
5. 重启服务
无论你做了哪些更改,都要记得重新启动服务器,以确保设置生效:
对于 Apache
sudo service apache2 restart
对于 Nginx 和 PHP-FPM
sudo service nginx restart
sudo service php-fpm restar
相关文章
随机图文
-
写了个“张雪峰”提示词,让 AI 免费做志愿规划
辅助填写志愿的提示词,主要作用是引导学生发掘出个人特点、家庭背景、优/劣势学科、行业前景等因素,然后给学生推荐适合的行业/职业,目前使用市面上主流的 AI 测试了一波,Google Gemini 、通义千问跟 ChatGPT 表现还不错 -
衰老是繁殖的副产物
衰老本质上是生物繁殖过程伴随产生的现象。细胞需要不断分裂、复制来自我繁殖,但每次复制都可能出现错误。复制次数越多,出错的概率就越高,这些错误逐渐积累,就成了衰老的源头。 -
《我爸是个爱做菜的人》
我爸是个爱做菜的人 -
银河系中心部分的VISTA十亿像素镶嵌图
这张引人注目的银河系中心部分的图片是由位于Chile的ESO帕拉纳尔天文台的VISTA望远镜拍摄的。这张巨大的照片 E是108200×81500像素,包含近90亿像素。它是由VISTA通过三种不同的红外滤镜拍摄的数千张单独的图像组合而成的。这些数据是VVV公开的一部分。
