docker php 开启扩展报错:Unable to load dynamic library xxx

这个问题我在网上找了很多办法都没有解决,没办法,只好自己思考找出解决办法。

 

网上很多答案又是源码又是编译的,乱七八糟、五花八门,但实际上解决方法很简单。

对于7.0及以上版本:

1.用docker exec命令进入php容器的bash终端,然后执行

php -i|grep php.ini

会显示错误扩展信息和php.ini的位置,提示里已经说了,unable find,说明咱们没有安装对应的库,安装即可。

 

2.安装方法:

docker-php-ext-install xxx

xxx是你报错的没有找到的扩展,有的插件可以直接安装,有的插件需要依赖其他库,具体怎么安装你需要的库参考这篇文章。(运行对应命令不要带RUN)

 

3.安装完成你缺失的库,重启php容器即可。

对于5.X版本:

5.X版本的原理和安装方法和上面其实一样,唯一不一样的地方是!

1.php.ini文件中extension=xxx需要修改,因为自带的都是extension=xxx.dll的,在我们按照上述步骤安装完对应的模块后,需要修改php.ini,把.dll这个后缀替换为.so;

2.并且5.xx的php.ini中模块名并不是真正的模块名,而是extension=php-xxx.dll的形式,我们要安装xxx而不是php-xxx,这点要注意,安装完记得把php-也删了

3.即原php.ini中格式为extension=php-xxx.dll,我们安装完xxx模块后要改为extension=xxx.so

你可能感兴趣的:(Linux,云计算)