この記事ではWordPressのEWWWプラグインで既存の画像データのパスを変更するデータのマイグレーション方法について記載しています。
今回はプラグインを利用してS3のみを利用しています。
CloudFrontに関しては範囲外になります。
AWS側の作業手順
- S3のバケットを作成
- S3は公開設定しておく。CloudFrontを利用している場合はCloudFront経由からのみアクセスOKとかの設定をしておくこと。
- IAMユーザーの作成
- S3に対して全権限を付与しておく(AmazonS3FullAccess)
WordPress側の作業手順
- プラグインを追加
- wp-config.phpに作成したIAMユーザーのcredential情報を追加。
- EWWWの設定画面で作成したバケットを指定。
- 「Remove Files From Server」をOFFにしておく。(サーバーに画像を残したい場合はONのままでいいが、オススメしない。)
画像をS3にアップロードする
- サーバーにssh接続
- 以下のコマンドでアップロードする。
aws s3 sync /{WordPressのインストールディレクトリ}/wp-content/uploads/ s3://{S3のバケット名}/wp-content/uploads/ --acl public-read
データベースをマイグレーションする
- WordPressのデータベースにログイン
- 以下のコマンドでデータのマイグレーションを行う。(リージョンなどは確認してください)
insert into wp_as3cf_items (provider, region, bucket, path, original_path, is_private, source_type, source_id, source_path, original_source_path, extra_info, originator, is_verified)
select 'aws', 'ap-northeast-1', '{S3のバケット名}', substring_index(guid, '{domain}/', -1),substring_index(guid, '{domain}/', -1),0, 'media-library',ID,substring_index(guid, '/wp-content/uploads/', -1),substring_index(guid, '/wp-content/uploads/', -1),'a:2:{s:13:"private_sizes";a:0:{}s:14:"private_prefix";s:0:"";}', 0, 1 from wp_posts where post_mime_type in ('image/jpeg', 'image/png');
残作業
- ロゴは上記のマイグレーションでは対応しきれないので、管理画面から指定し直す。
- webp対応するのであれば、メニューのメディアからBulk Optimizeで画像を一括置換を行う。
投稿者について
山梨でやまなみテクノロジーズ株式会社の代表をしている小畑です。
WordPress周りの改修やweb制作、SEO対策やデータ分析にお困りでしたらお問い合わせください。