Nextcloudで画像を見ていたら、特定の画像でこんなエラーが出ました。
↓はAndroidアプリでの画面ですが、Chromeで見ても同じでした。
エラーの原因特定に役立ったのは、Nextcloudのログ。
現象発生時に以下のログが出ていました。
一部抜粋。
{"Exception":"Error","Message":"imagecreatefromstring(): No JPEG support in this PHP build at /var/www/html/lib/private/legacy/OC_Image.php#668","Code":0,"Trace":
ググるとすぐに見つかりました。
画像処理用ライブラリGDがjpeg拡張をサポートしていないようで。
確認したら、確かにjpegがありません。
php -i | grep -A 15 gd (略) gd GD Support => enabled GD Version => bundled (2.1.0 compatible) GIF Read Support => enabled GIF Create Support => enabled PNG Support => enabled libPNG Version => 1.6.36 WBMP Support => enabled XBM Support => enabled BMP Support => enabled TGA Read Support => enabled Directive => Local Value => Master Value gd.jpeg_ignore_warning => 1 => 1 (略)
コンテナ内で以下を行って解決できました。
ついでにfreetype/WebPも追加。
こちらの記事を参考にさせていただきました。
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp docker-php-ext-install gd
動作確認。
まずphp -i。
JPEG Support・FreeType Support・WebP Supportが追加されました。
php -i | grep -A 20 gd (略) gd GD Support => enabled GD Version => bundled (2.1.0 compatible) FreeType Support => enabled FreeType Linkage => with freetype FreeType Version => 2.9.1 GIF Read Support => enabled GIF Create Support => enabled JPEG Support => enabled libJPEG Version => 6b PNG Support => enabled libPNG Version => 1.6.36 WBMP Support => enabled XBM Support => enabled WebP Support => enabled BMP Support => enabled TGA Read Support => enabled Directive => Local Value => Master Value gd.jpeg_ignore_warning => 1 => 1
お次は実際に問題の出た画像を見てみます。
見られるようになりました。
終わりに
いかがでしたか。
同じようなエラーがでお悩みの方、参考になれば!
Comments