4
2

More than 3 years have passed since last update.

laradock環境下でexif extensionが使えない罠

Last updated at Posted at 2020-03-08

数日間嵌ったのでメモ💦

laradockで画像のアップロード機能を実装していたが、どうしても画像が横向きに表示されてしまう…
画像の向きに関して、こちらに分かりやすい解説がありました。なるほど…
https://qiita.com/k-holy/items/2ed10bdcf53181bb695d

EXIFタグのOrientationは、カメラで撮影した時に画像の向きに関する情報をファイルに埋め込むことで、アプリケーション側で表示する際にその情報を見て向きを補正するための仕様です。
しかし、これが設定された画像ファイルをサーバ側で受け取って縮小する際、GD等による加工の過程でEXIFタグの情報が失われてしまうために、画像の向きが補正できなくなってしまうわけです。
なので、まず exif_read_data() を使ってEXIFのOrientation値を読み込み、それに併せてGD関数で画像を反転/回転させた後、縮小します。

👇こちらを参考にintervention imageインストール
https://blog.capilano-fw.com/?p=1574#orientate

画像の向きを回転させてくれるorientateを実行。しかしエラー発生

Reading Exif data is not supported by this PHP installation.

laradockはデフォルトではexif extensionが有効になっていないらしい…

試したこと

👇こちらのツイートを参考に設定変更
https://twitter.com/tuk_nagayan/status/1208642383732019200

php-fpmデイレクトリのdockerfile編集

ARG_INSTALL_EXIF=false
↓
ARG_INSTALL_EXIF=true

コンテナ再ビルド

docker-compose build —no-cache php-fpm

しかし上記エラー変わらず…なんでインストールできんのや…

とりあえずphp.iniファイルも編集(必要かはわからない)

extension=php_mbstring.dll
extension=php_exif.dll  
上記の拡張機能のコメントアウト外す

解決

👇下記のイシューを参考に追加で修正
https://github.com/spatie/laravel-medialibrary/issues/280

laradock/.env編集

PHP_FPM_INSTALL_EXIF=false
↓
PHP_FPM_INSTALL_EXIF=true

再びビルド

docker-compose build --no-cache php-fpm

無事インストール成功…💦

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2