php - 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 已正确保存:
我尝试了很多来自不同帖子的建议,但根本没有成功。
有人知道问题可能出在哪里吗?
谢谢,
解决方案
我如何写到您需要添加的评论中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
我检查了这个配置它工作正常。
推荐阅读
- typescript - 我有一个 Observable 对象流,正在尝试返回一个 Observable
来自数组成员的流 - python - 如何解决IndexError:列表索引超出范围?
- oracle - Oracle Forms 从自定义菜单调用多个表单的某些画布 (mmb)
- javascript - 尝试从 chart.js 访问条形图时未定义 .datasets
- javascript - 如何在单元格中弹出 React-Table?
- angular - 如何以数组格式而不是 json 格式发送数据(来自 observable)
- c++ - 此代码是否容易受到 SQL 注入的影响?我怎样才能让它安全?
- java - 如何访问 WMI 查询的数据(通过 JNA)SAFEARRAY 结果
- javascript - ChartJS - 如何为数据集提供对象数组
- azure - Azure API 管理是否可以同步发布到 Azure 服务总线?