NextcloudでError loading xxx.jpgになったときの対処方法

Docker



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 SupportFreeType SupportWebP 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

タイトルとURLをコピーしました