Docker PHP容器:非Dockerfile安装event扩展失败如何解决?
解决 docker php 容器中非 dockerfile 安装 event 扩展加载失败的问题
本文旨在解决在 ubuntu 服务器的 docker 容器中,使用非 dockerfile 方法安装 event 扩展时遇到的加载失败问题。
问题描述
执行以下步骤后,在 docker-php-ext-enable event 时出现加载失败:
1. docker-php-ext-install pdo_mysql opcache sockets2. docker-php-ext-enable sockets3. pecl install event4. docker-php-ext-enable event
错误提示:
warning: php startup: unable to load dynamic library 'event' ...
解决方法
参考 github 上的 issue [857](https://github.com/docker-library/php/issues/857),可以发现以下解决方案:
立即学习“PHP免费学习笔记(深入)”;
在执行 docker-php-ext-enable 时,使用 --ini-name 参数指定扩展配置名称。由于 php 中扩展启用顺序是按照文件名排序,因此通过指定一个字母顺序靠后的名称,可以确保 event 扩展在 sockets 扩展之后加载。
# 如果手动启用了 event 扩展,请先删除相应配置rm /usr/local/etc/php/conf.d/docker-php-ext-event.inidocker-php-ext-enable --ini-name z999-docker-php-ext-event.ini event
效果
执行上述命令后,event 扩展将顺利加载。