当前位置: 首页 > 知识库问答 >
问题:

php - 如何在Docker PHP容器中非dockerfile解决event扩展加载失败的问题?

华献
2024-08-30

在乌班图的服务器里面,在docker容器里面安装扩展,非执行dockerfile,然后执行步骤为

1. docker-php-ext-install pdo_mysql opcache sockets
    docker-php-ext-enable sockets
    pecl install event
    docker-php-ext-enable event

2.执行最后一步也出现了

Warning: PHP Startup: Unable to load dynamic library 'event' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20200930/event (/usr/local/lib/php/extensions/no-debug-non-zts-20200930/event: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so (/usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so: undefined symbol: socket_ce)) in Unknown on line 0

3.网上说event插件需要最后安装,我也是最后安装的,但是永远都会出现这个问题,
后面又在AI上面看到了这一步

echo "extension=event.so" >> /usr/local/etc/php/conf.d/docker-php-ext-event.ini
echo "extension=sockets.so" >> /usr/local/etc/php/conf.d/docker-php-ext-sockets.ini

加入后,还是一样的

Warning: PHP Startup: Unable to load dynamic library 'event' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20200930/event (/usr/local/lib/php/extensions/no-debug-non-zts-20200930/event: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so (/usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so: undefined symbol: socket_ce)) in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'event.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so (/usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so: undefined symbol: socket_ce), /usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20200930/event.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

Warning: Module "sockets" is already loaded in Unknown on line 0

这个需要怎么去解决呢

参考过https://github.com/docker-library/php/issues/857的安装流程,

共有1个答案

富涛
2024-08-30

你贴的那个 Issuse 里面,下面的那个解决方案是可以的呀,在 docker-php-ext-enable 的时候,指定一下 --ini-name 参数,利用命名规则,让 event 在 sockets 后面启用就好了。

# 如果现在已经手动启用过,就删除掉这个配置
rm /usr/local/etc/php/conf.d/docker-php-ext-event.ini
docker-php-ext-enable --ini-name z999-docker-php-ext-event.ini event

image.png


image.png

 类似资料:
  • 本文向大家介绍PHP Redis扩展无法加载的问题解决方法,包括了PHP Redis扩展无法加载的问题解决方法的使用技巧和注意事项,需要的朋友参考一下 最近在工作中需要使用PHP访问Redis,从https://github.com/phpredis/phpredis下载了phpredis,并且按照官方的说明进行了安装 但是在重启php-fpm的过程中,发生了如下的错误,redis.so无法载入

  • 问题描述 使用 Dockerfile 安装 GD 的过程中,报错 Dockerfile 文件内容: 报错如下 然后我给zlib1g降级 又报错 好像大概是不然使用-y参数吧,但是我去掉了参数还是报错 报错如下 好像是降级需要确认,但是 Dockerfile 中又不能输入Y。 请问如何解决? 搜了半天没有找到方法 1. 运行环境 1). PHP 版本: php:7.3-fpm 2). 当前系统 ma

  • 我有一个问题加载我的扩展在PHP在windows 7.我已经在我的windows上安装了php和IIS,当我检查phpinfo()页面时,我发现我的extension_dir是c:/php/exts。所以我将我的dll文件复制到那个目录中,并添加php.ini文件,然后我重启IIS并检查我的扩展名是否已加载: 但每次我运行这段代码时都会得到“否”。谢谢你的帮助。

  • 进入php源码目录中,配置需要提供mysql_config文件的位置,而且mysql_config文件又要去找mysql其他文件。 由于我的php 和mysql 是2个容器 ,不在一个文件系统里,这可怎么办呀?

  • 我在phpinfo()中的“已解析的其他.ini文件”部分看不到mcryptphp_mcrypt'已经安装。我使用CentOs和nginx以及PHP5.3。3. 在/etc/php中。d/mcrypt。我写的ini扩展名=mcrypt。所以 我试图改变扩展路径在php.ini(ex扩展=/usr/lib64/php/模块/mcrypt.so),但它仍然不工作。

  • 问题内容: 所以我最近发现了这个很棒的工具,它说 Docker是一个开源项目,可以从任何应用程序轻松创建轻便,可移植,自给自足的容器。开发人员在笔记本电脑上构建和测试的容器可以在生产环境中大规模运行在VM,裸机,OpenStack集群,公共云等上。 假设我有一个运行Nginx的docker映像,一个网站连接到外部数据库。如何在生产中缩放容器? 问题答案: 首先,感谢那些多年来对这个答案的支持。 请

  • 我刚刚通过Brew在Mac OSX 10.10.1上执行了PHP 5.5(.19)的新安装,并将Brew安装中的符号链接到。 使用通过Apache启动脚本,告诉我加载的文件位于。 我已经将其添加到: 我应该提到这些模块也安装在Brew中。当使用PHP作为Apache模块时,它们加载没有问题。但是,当从终端使用php时,我收到以下输出: 跑步时: 我收到输出: 所以我可以看到,加载的配置文件与作为A

  • 我正在windows server 2008 R2机器上工作。我已经用PHP5.4安装了Apache2.2。25在尝试为apache服务器启用ldap支持时,我发现服务器没有加载扩展。 我跑了php_info(),结果是这样的 配置文件(php.ini)路径 C:\Windows加载的配置文件:“C:\php\php.ini 扩展目录C:\php\ext 我已经改变了php。ini加载扩展,但它们