Homebrew + Imagemagick + php54-imagick não funciona

1

Com base neste post aqui , eu estou tendo um problema de versionamento com Imagemagick.

  • php54-imagick version => 3.4.3_2
  • imagemagick => 7.0.5-3

Entendo que preciso fazer o downgrade da minha imagemagick para 6.9. *

Meu problema:

brew install php54-imagick

Instala automaticamente o pacote imagemagick 7.0.5-3 necessário

-

Eu desinstalo o imagemagick 7.0.5-3

brew uninstall --ignore-dependencies imagemagick

-

Eu instalo o imagemagick 6.9. * (6.9.8-1 para ser específico)

brew install imagemagick@6

O erro:

macos1:~ $ php -i | grep imagick

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/opt/php54-imagick/imagick.so' - dlopen(/usr/local/opt/php54-imagick/imagick.so, 9): Library not loaded: /usr/local/opt/imagemagick/lib/libMagickWand-7.Q16HDRI.0.dylib
  Referenced from: /usr/local/opt/php54-imagick/imagick.so
  Reason: image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php54-imagick/imagick.so' - dlopen(/usr/local/opt/php54-imagick/imagick.so, 9): Library not loaded: /usr/local/opt/imagemagick/lib/libMagickWand-7.Q16HDRI.0.dylib
  Referenced from: /usr/local/opt/php54-imagick/imagick.so
PHP Warning:  Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-imagick.ini

A questão:

Como eu usaria o php54-imagick versão 3.4. * Com o imagemagick 6.9. *?

Jeffrey Wen
fonte
O PHP 5.4 não é mais suportado ( php.net/supported-versions.php ). Você já tentou com uma versão mais recente?
wogsland
@wogsland Eu já tentei com o PHP 5.6.
Jeffrey Wen

Respostas:

0

Eu resolvi meu próprio problema! Como eu estava usando o método readImage da classe ImageMagick, ele exigia que o ghostscript fosse instalado ao lado do ImageMagick.

No entanto, quando você brew install imagemagick, o ghostscript é uma dependência opcional que não é instalada por padrão.

Para resolver meu problema, aqui está o que eu fiz (todas as etapas):

  1. brew install php54-imagick
  2. brew install imagemagick --with-ghostscript

Agora eu posso readImage ('test.pdf')!

Jeffrey Wen
fonte
0

Eu tive o mesmo problema, mas ao atualizar do PHP 7.0 para o PHP 7.1. O erro desapareceu depois de reinstalar a extensão imagick da fonte:

brew reinstall -s php71-imagick

Eu acho que pode funcionar para outras versões do PHP. Apenas substitua o php71comando acima pela sua versão. Por exemplo: php56ou php70.

Gustavo Straube
fonte