You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitnami LAMP栈PHP7.3启用pdo_pgsql报undefined symbol错误求助

解决Bitnami PHP7.3无法加载pdo_pgsql扩展的问题

问题背景

使用Bitnami LAMP栈(PHP7.3,Ubuntu20.04),尝试启用pdo_pgsql扩展时失败,执行php -m报错:

PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_pgsql.so' (tried:
/opt/bitnami/php/lib/php/extensions/pdo_pgsql.so
(/opt/bitnami/php/lib/php/extensions/pdo_pgsql.so: undefined symbol: pdo_throw_exception),
/opt/bitnami/php/lib/php/extensions/pdo_pgsql.so.so
(/opt/bitnami/php/lib/php/extensions/pdo_pgsql.so.so: cannot open shared object file: No
such file or directory)) in Unknown on line 0

此前通过系统APT仓库安装扩展并复制.so文件的方法在PHP8.0环境可行,但PHP7.3下因二进制兼容性问题失效。

错误原因

Bitnami的PHP是独立编译的隔离环境,与系统APT安装的PHP编译参数、依赖库版本完全不一致。直接复制APT安装的pdo_pgsql.so文件到Bitnami目录,会出现符号缺失(如pdo_throw_exception),导致扩展无法加载。

解决方案

方案1:使用Bitnami自带PECL工具安装(推荐)

Bitnami提供了适配自身PHP环境的PECL工具,可直接编译安装兼容的扩展:

  1. 执行Bitnami的PECL命令安装pdo_pgsql:
    sudo /opt/bitnami/php/bin/pecl install pdo_pgsql
    
    • 若提示指定PostgreSQL路径,根据实际情况输入:
      • 若使用Bitnami自带的PostgreSQL:--with-pdo-pgsql=/opt/bitnami/postgresql
      • 若使用系统APT安装的PostgreSQL(Ubuntu20.04默认是12版本):--with-pdo-pgsql=/usr/lib/postgresql/12
  2. 安装完成后,工具会自动在/opt/bitnami/php/etc/php.ini中添加扩展配置,若未自动添加,手动添加一行:
    extension=pdo_pgsql.so
    
  3. 重启Bitnami Apache服务:
    sudo /opt/bitnami/ctlscript.sh restart apache
    
  4. 验证扩展是否加载:
    /opt/bitnami/php/bin/php -m | grep pdo_pgsql
    

方案2:手动编译扩展(PECL安装失败时使用)

手动下载对应PHP版本的源码,用Bitnami的编译工具编译适配的扩展:

  1. 下载与Bitnami PHP7.3匹配的PHP源码(先通过/opt/bitnami/php/bin/php -v确认具体版本,比如7.3.33):
    cd /tmp
    wget https://www.php.net/distributions/php-7.3.33.tar.gz
    tar -xzf php-7.3.33.tar.gz
    cd php-7.3.33/ext/pdo_pgsql
    
  2. 用Bitnami的phpize初始化编译环境:
    /opt/bitnami/php/bin/phpize
    
  3. 配置编译参数(指定Bitnami的PHP配置和PostgreSQL路径):
    ./configure --with-php-config=/opt/bitnami/php/bin/php-config --with-pdo-pgsql=/usr/lib/postgresql/12
    
  4. 编译并安装:
    make && sudo make install
    
  5. 手动在/opt/bitnami/php/etc/php.ini添加扩展配置,重启Apache后验证(同方案1步骤3-4)。

关键注意事项

  • 禁止直接使用系统APT安装的PHP扩展文件,必须针对Bitnami PHP环境编译或通过其自带工具安装。
  • 操作时确保使用Bitnami PHP的绝对路径(/opt/bitnami/php/bin/下的工具),避免调用系统PHP的命令。

内容的提问来源于stack exchange,提问作者Ivan Polak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:15:38