Я только что установил расширение imagick PHP, следуя этому сценарию: https://gist.github.com/rostockahoi/1d53a2efb8863d72d5f1acb94ae940d1
Установка прошла нормально. Я нашел файл imagick.so в каталоге /usr/lib/php/20180731. И мои файлы php.ini (fpm и cli) имеют расширение = imagick.so в конце.
Я перезапустил PHP и nginx.
Однако PHP не может найти расширение. Посмотрите на этот тест CLI:
$ php -i
$ PHP Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib/php/20170718/imagick.so (/usr/lib/php/20170718/imagick.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/imagick.so.so (/usr/lib/php/20170718/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP ищет расширения в этом каталоге /usr/lib/php/20170718/
Этот каталог существует, но в нем нет imagick.so.
С другой стороны, как было сказано ранее, есть также каталог /usr/lib/php/20180731/ с файлом imagick.so.
Думаю, мне нужно сказать PHP, чтобы он заглянул в каталог 20180731 вместо 20170718.
Как я могу это сделать ?
Или я должен вручную скопировать файл imagick.so в 20170718? Это не кажется оптимальным...
Спасибо !






Возможно, вам стоит попробовать это php-config --extension-dir
Если php-config не существует, то apt-get install php-config
Эта команда даст точное местоположение вашей папки расширения php.
Не забудьте изменить свой php.ini, чтобы использовать расширения.
Наконец-то я использовал еще одну команду для установки imagick, и все в порядке.
sudo apt-get install php-imagick
imagick.so установлен во всех /usr/lib/php/YYYYMMDD/ каталогах.
Гораздо проще!