一夜之间,PECL ImageMagick 扩展突然在我们的几台服务器上停止工作。显示的错误消息如下:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/imagick.so' - libMagickWand.so.2: cannot open shared object file: No such file or directory in Unknown on line 0
在此之前,ImageMagick 本身和 PECL 扩展已安装并运行了数月。上述错误消息中引用的所有文件均位于服务器上的给定位置。
所有服务器都是 RHEL6,结合了标准 PHP 5.3.3 安装或通过第三方存储库安装的 v5.4.x / 5.5.x。
发出“pecl uninstall imagick”和“pecl install imagick”似乎已经解决了这个问题,但我很好奇为什么会发生这种情况?
答案1
由于您说您正在使用第三方存储库,我很确定发生的事情是后台 yum 更新运行并更新了 imagemagik rpm 并删除了 php 模块所链接的库。
因此,当您通过 pecl 重新安装时,它会找到新的库并重新链接。
如果你在模块上运行以下命令,你会看到新的库会有所不同libMagickWand.so.2
ldd /usr/lib64/php/modules/imagick.so | grep libMagick
答案2
我们的托管公司已经确认,这与昨晚在我们所有服务器上自动发布的 yum 更新有关 - 他们向我发送了此链接以获取更多信息:https://bugzilla.redhat.com/show_bug.cgi?id=1248069