Imagick не открывает PDF-файлы с исключением «Не удалось прочитать файл»

Попытка открыть файл PDF из скрипта php в ошибке с ошибкой:

Uncaught ImagickException: Failed to read the file in ... 

Я запускаю OS X, Brew, PHP 7.0, php70-imagick –HEAD, ImageMagick –with-ghostscript, GhostScript

Тест командной строки отлично работает:

 convert 1.pdf 1.jpg 

Разрешение файла одобрено. Попробуйте как URL, так и локальный файл с функцией realpath, поэтому путь к файлу тоже в порядке. Скрипт отлично работает, если открыт jpeg.

 phpinfo() -> ImageMagick supported formats: EPDF, PDF, PDFA, etc. 

ОБНОВЛЕНИЕ: Решено. Решение ниже.

Эта проблема была связана с пути к ghostscript. Он находится в «/ usr / local / bin», но этот путь недоступен для Apache. (phpinfo -> среда Apache -> PATH)

Решение состоит в том, чтобы символически ссылаться на другой путь:

  sudo ln -s /usr/local/bin/gs /usr/bin/gs 

OS X El Capitan Примечание! / usr / bin / в OS X 10.11+ защищена. Вы должны выполнить следующие действия:

 1. Reboot to Recovery Mode. Reboot and hold "Cmd + R" after start sound. 2. In Recovery Mode go to Utilities -> Terminal. 3. Run: csrutil disable 4. Reboot in Normal Mode. 5. Do the "sudo ln -s /usr/local/bin/gs /usr/bin/gs" in terminal. 6. Do the 1 and 2 step. In terminal enable back csrutil by run: csrutil enable 

Вот лучший способ обновления переменной пути Apache в OS X, которая не требует символической привязки (и, следовательно, нет необходимости отключать SIP):

https://www.euperia.com/development/solved-php-imagick-unable-to-open-image-pdf