PhpスクリプトからPDFファイルを開こうとすると、エラーが発生します。
Uncaught ImagickException: Failed to read the file in ...
私はOSX、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 Note! OS X 10.11+の/ usr/bin /は保護されています。次の手順に従う必要があります。
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
シンボリックリンクを必要としない(したがってSIPを無効にする必要がない)OSXでApacheパス変数を更新するためのより良い方法は次のとおりです。
https://www.euperia.com/development/solved-php-imagick-unable-to-open-image-pdf