升级MacOS Sonoma后PHP-FPM中pg_connect()无返回问题求助
MacOS Sonoma升级后PHP-FPM环境下pg_connect无响应问题求助
我通过Homebrew部署的PHP/PostgreSQL/NGINX应用在MacOS上稳定运行多年,将系统从13.x升级至Sonoma 14.1后,pg_connect()调用不再返回,该问题已在2台设备上复现。PHP、NGINX及PostgreSQL配置均未改动,仅升级了MacOS,使用psql搭配不同--host参数可正常连接PostgreSQL。
我编写了仅含pg_connect()的测试脚本:
<?php // 以下代码执行后无返回,请求直接终止 $db = pg_connect("host=dbserver port=5432 dbname=appdb user=appuser"); echo "success!"; ?>
经过多组参数测试,发现以下现象:
- 通过NGINX/PHP-FPM调用测试脚本时,
pg_connect与pg_pconnect均无返回或进程终止(NGINX返回"Bad Gateway"); - 通过命令行(
php -f test.php)调用时,两者均可正常工作; - 移除连接字符串中的
host=xxx参数后,两种环境下均可连接本地PostgreSQL,但这并非我所需; - 使用
host=ip、host=127.0.0.1、host=dnsname、host=localhost等多种形式时,PHP-FPM环境下均无返回或进程终止; - Postgres、NGINX及PHP日志中无有效错误信息,但
php-fpm.log中出现大量如下日志:WARNING: [pool www] child 82817 exited on signal 9 (SIGKILL) after 0.000208 seconds from start
请问是否MacOS升级后新增了连接限制,需手动授权?
环境版本
- MacOS 14.1.1
- PHP 8.2.13/8.3.0
- PostgreSQL 15.5/16.1
- libpq 16.1
- nginx/1.25.3
- Homebrew 4.1.21
- Apple Mac M1
内容的提问来源于stack exchange,提问作者Allen
相关产品推荐
相关产品推荐

