MacOS Homebrew安装PHP扩展存储位置及pdo_pgsql加载问题
解决PHP 8.3.8(Homebrew安装)加载pdo_pgsql扩展报错问题
1. 确认pdo_pgsql扩展是否已安装
- 运行
brew info php,查看输出中是否包含pdo_pgsql相关说明。Homebrew默认编译PHP时会包含常用数据库扩展(包括pdo_pgsql),无需单独安装动态库。 - 运行
php -i | grep pdo_pgsql,如果返回类似如下内容,说明扩展已启用且为静态编译:PDO Driver for PostgreSQL => enabled
pdo_pgsql
pdo_pgsql support => enabled
2. 找到PHP扩展的实际存储位置
- 运行
php -i | grep extension_dir,输出的路径就是PHP扩展的实际目录,Homebrew安装的PHP通常会指向Cellar内的路径,比如:extension_dir => /usr/local/Cellar/php/8.3.8/lib/php/20230831 => /usr/local/Cellar/php/8.3.8/lib/php/20230831
3. 解决加载报错的问题
- 把php.ini中
extension=pdo_pgsql这一行重新注释掉。因为Homebrew的PHP已将pdo_pgsql静态编译进主程序,不需要通过动态加载指令启用,强行加载会找不到不存在的动态库文件,导致报错。 - 保存php.ini后,重启PHP-FPM(如果使用FPM模式)或Web服务器,即可正常使用pdo_pgsql连接PostgreSQL。
内容的提问来源于stack exchange,提问作者Fonkin Stubbleduck
相关产品推荐
相关产品推荐

