发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Ubuntu上折腾PHP环境时,数据库连接超时的问题其实挺常见的——要么脚本跑着跑着就卡死了,要么长时间没响应把服务器拖垮。要搞定这个,关键一步就是调整PHP自身的配置,具体来说就是php.ini里的那几个超时参数。下面把步骤拆开说,保证你跟着做一遍就能搞定。

打开终端,这是基本功,不解释了。
先找到php.ini文件的位置。执行下面这个命令,它会直接告诉你PHP正在读哪个配置文件:
php --ini
输出里会显示类似“Loaded Configuration File”的路径,通常命令行版本的在/etc/php/{php_version}/cli/php.ini,Apache版本的在/etc/php/{php_version}/apache2/php.ini。那个{php_version}要替换成你实际用的版本号,比如7.4或8.1。
用你顺手的编辑器打开这个文件。比如用nano的话:
sudo nano /etc/php/{php_version}/cli/php.ini
注意前面加上sudo,因为配置文件只有root才能改。
在文件里搜索下面这一行:
;default_socket_timeout = 60
它前面有个分号,表示被注释掉了。去掉分号,然后把数字改成你想要的超时秒数。比如你想让数据库连接30秒没响应就断开,就写成:
default_socket_timeout = 30
另外,如果你想专门控制MySQL或PDO的连接超时,也可以在PHP代码里用ini_set()来动态设置,但全局改php.ini是更彻底的方式。
保存并退出编辑器。
最后一步,重启Web服务器让配置生效。如果你用的是Apache:
sudo systemctl restart apache2
如果是Nginx加PHP-FPM的组合,就需要分别重启:
sudo systemctl restart nginx
sudo systemctl restart php{php_version}-fpm
同样,把{php_version}换成你的实际版本号。
到这里,PHP数据库连接超时就已经设置好了。你可以写个小脚本测试一下——比如搞个故意延迟的数据库查询,看看超时是否按你设定的时间触发。其实这个参数不光影响数据库,还影响所有基于socket的连接,比如curl或者远程文件读取。所以设置的时候要根据你的应用场景拿捏好:超时太短容易误杀正常请求,太长又可能让服务器资源被浪费。一般30到60秒是比较常用的范围。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8