В одночасье расширение 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», похоже, устранило проблему, но мне любопытно, почему это произошло вообще?
Поскольку вы сказали, что используете сторонние репозитории, я почти уверен, что произошло фоновое обновление yum, обновлено rpm imagemagik и удалена библиотека, с которой был связан модуль php.
Итак, когда вы переустановили через pecl, он нашел новую библиотеку и повторно связал ее.
Если вы запустите следующую команду над модулем, вы увидите, что новая библиотека будет отличаться от libMagickWand.so.2
ldd /usr/lib64/php/modules/imagick.so | grep libMagick
Наша хостинговая компания подтвердила, что это связано с обновлением yum, автоматически выпущенным на всех наших серверах вчера вечером - они прислали мне эту ссылку для получения дополнительной информации: https://bugzilla.redhat.com/show_bug.cgi?id=1248069