WordPressの画像投稿がS3に反映されない。
解決したいこと
ここに解決したい内容を記載してください。
例)
WordPressに投稿する画像をサーバー上ではなく、AWSのS3の保存され、インターネットから閲覧できるようにS3の構築を行なっています。
nanoエディターで権限付与しているIAMユーザをアクセスキー・シークレットアクセスキーで認証し、WordPressも正常に作動したため試しに画像を投稿してS3に画像が表示されるか確認したのですが、表示されません。
WordPressから投稿した画像がS3に表示(保存・閲覧)されるよう
解決方法を教えて下さい。
発生している問題
WordPressから投稿した画像がS3側で保存・閲覧ができない。
また、WordPressの画像投稿し、投稿保存し、プレビュー画面で画像のアドレスを見ると、
ページ名から始まってしまっている。
S3に反映されていれば、アドレスはS3から始まっているのに自分のサイト名から始まっているので、サーバー上で保存されている可能性あり。
今回の構築手順
1、AWS側の準備
①S3バケットを作成
S3でバケット作成時に ブロックパブリックアクセス設定について、
インターネットからアクセスできるようにしたり、WordPressからアクセスできるようにするなら、
- [ ] パブリックアクセスを全てブロックにチェックを外す。
②S3の権限を持ったIAMユーザ作成
- [x] プログラムによるアクセスにチェック
既存のポリシーを直接アタッチを選び、「AmazonS3FullAccess」
→S3の操作であればなんでのできる
キーは空にする。
2、 WordPressの設定
ープラグインのインストール(拡張機能の付与)
プラグインメニューでWP OFFload media lite for Amazon S3をインストール
Remove Files From Serverを有効化にする
ー必要なライブラリをEC2にインストール
![スクリーンショット 2021-05-05 10.48.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1114666/e4ef452e-d989-24bd-c16d-5c9620d19a3f.png)
ターミナルでSSHでログイン
ssh -i ~/Desktop/aws/my-aws-ssh-01.pem ec2-user@パブリックIP
必要なライブラリをyumでインストール
sudo yum install -y php-xml
+sudo yum install php-devel.x86_64
WebサーバのApacheがライブラリをちゃんと読み込むようにサーバの再起動する。
sudo systemctl restart httpd.service
ープラグインの設定
→S3とwordPressを連携させる。
Wp-config.php
→サーバ上にあるWordPressの設定ファイル
Wordpressファイルのある下位に移動
cd /var/www/html/
ls
nanoエディターを起動(編集:$nano[ファイル名] 保存:^S 閉じる:^X)
nano wp-config.php
If文より上の部分にWordPressのoffload media liteの内容を貼る。
define( 'AS3CF_SETTINGS', serialize( array(
'provider' => 'aws',
'access-key-id' => '********************',
'secret-access-key' => '**************************************',
) ) );
S3にアクセスするためのIAMユーザの認証情報を*の部分に貼る。
(S3権限を持つIAMユーザの作成時にダウンロードしたcsvデータに記載)
保存して、閉じる。
Offload Media Liteをリロード。
バケット選択で今回作ったバケットを選択。
オプション選択時にRemove Files From Server←オンにする
保存。
これでWordPressから投稿された画像はS3に保存されて、S3から配信される。
WordPressから画像を掲載して投稿保存した上で、S3から配信されているか確認する。
自分で試したこと
構築の最初の手順から見直し、リロードしても改善しません。
0