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, поэтому filepath тоже в порядке. Скрипт отлично работает, если открыть jpeg.

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

обновление: решена. Решение ниже.

2 ответов


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

решение заключается в символической ссылке файла на другой путь:

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

OS X El Capitan Примечание! /usr/ bin / in 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