WP Offlaod Media Lite S3で画像アップロードが出来なかった...。 ~php-gd~
AWS初心者向けのハンズオン形式の講座で、WordPress上の画像をS3に保存する処理がありましたが、どういうわけだかS3にアップロードできませんでした。
「AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得」
蛇足:AWSのコンソールやWP Offload Mediaの設定画面がハンズオン動画と異なるので苦労します...。
https://www.udemy.com/share/101Yby3@7BjNdcYUfFZEZkJbOQ2PFRKD2znhh2E07weMeqSegaewGTSl6u29J1MBsfp7HyIBPw==/
以下の投稿を参考に見直したところ、php関連パッケージのインストールで不足分が判明しました...。
php-gd
結論、私はphp-gd
というものが不足していたようです。
インストールコマンド
sudo yum install -y php-gd
php-gd
はGDライブラリの拡張モジュールで、GDライブラリが画像の生成および操作を可能にするためのものです。
以下の公式ドキュメントを読んでGDライブラリが何位をしているのかを私なりにまとめると
正直公式ドキュメントを読んでも、GDライブラリのインストールがS3へのアクセス成功につながる理由がわからないので、ChatGPTに聞いてみました。
WP Offload Media Liteの動作
WP Offload Media Liteは、以下のような処理を行う際にGDライブラリを利用する可能性があります
- 1.画像の最適化
- 画像の最適化やリサイズを行う際にGDライブラリを利用します。
- 2.画像のサムネイル生成
- 画像のサムネイルを生成する際にGDライブラリを使用します。
- 3.画像のフォーマット変更
- アップロードされた画像を異なるフォーマットに変換する場合、GDライブラリが必要です。
上記3つが正常に動作したため、php-gdをインストールしたら、S3に画像を格納することに成功しましたようです。
最後に
私は、貴重な休日を使ってこれを解決するのに1時間半を要してしまいました。
今回、S3の確認やIAMの権限確認、WP Offload Mediaの設定確認に時間を費やしましたが、まさかのライブラリのインストール不足だとは思いませんでした...。
教訓:インストールしたものの確認を丁寧に行う
以上