首页 > 解决方案 > Docker:PHP 启动:无法加载动态库 'pgsql'

问题描述

我正在尝试在 Docker 容器上运行 CodeIgniter 应用程序(PHP 框架),但出现此错误:

Message: PHP Startup: Unable to load dynamic library 'pgsql' 
(tried: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/pgsql 
(/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pgsql: 
cannot open shared object file: No such file or directory), 
/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pgsql.so 
(/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pgsql.so:
 cannot open shared object file: No such file or directory))

因此,这个:

Message: Call to undefined function pg_pconnect()

这是我的 Dockerfile:

FROM php:7.4.1-apache
RUN apt-get update && apt-get install -y libpq-dev
RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/lib/php/extension/pgsql
RUN docker-php-ext-install pdo pdo_pgsql

COPY . /var/www/html
COPY php.ini-production /usr/local/etc/php/php.ini

RUN service apache2 restart

EXPOSE 80

在 php.ini 上,我启用了这样的扩展:

;extension=pdo_odbc
extension=pdo_pgsql
;extension=pdo_sqlite
extension=pgsql
;extension=shmop

如果我访问我的 info.php 站点,我会看到扩展已启用:

在此处输入图像描述

我还看到,我的 php.ini 已正确保存:

在此处输入图像描述

我尝试了很多来自不同帖子的建议,但根本没有成功。

有人知道问题可能出在哪里吗?

谢谢,

标签: phpapachedockercodeigniter

解决方案


我如何写到您需要添加的评论中pgsql

FROM php:7.4.1-apache
RUN apt-get update && apt-get install -y libpq-dev
RUN docker-php-ext-install pgsql pdo pdo_pgsql

COPY . /var/www/html/

RUN service apache2 restart

EXPOSE 80

我检查了这个配置它工作正常。


推荐阅读