Попытка открыть файл 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