CloudFront→EC2構成でwordpress環境を作成する際に「リダイレクトが繰り返し行われました」が発生して苦労した点と対処法をまとめます。
CloudFrontを導入することでページをキャッシュでき、表示速度改善が期待できます!
結論 wp-config.phpにHTTPSを使用する旨の記述を追加する
wp-config.phpに下記記述を追加しよう。
(筆者はド素人だったので修正するwp-config.phpファイルを誤っていました。)
場所:/var/www/html/wp-config.php
$_SERVER['HTTPS'] = 'on';
検証環境 CloudFrontとEC2の構成
通常、CloudFrontとEC2の間にELBを入れたくなるところですが、今回はCloudFrontからEC2を直に呼び出しています。
実験的に立ち上げた環境なのでコスト対策のためです。
ELB(ALB)を導入すると最低でも約2,000円毎月かかります。
発生した事象 ERR_TOO_MANY_REDIRECTSが発生
WordPress管理画面(ドメイン/wp-admin)にアクセスするとERR_TOO_MANY_REDIRECTS エラーが発生しました。
WordPressの管理画面に入れなくなり焦りました。
エラー画面にある通りの対処法
- cookieを削除
- CloudFrontのキャッシュ削除
を実行しても解消されず途方にくれました・・・
原因 WordPressが接続プロトコルを誤認していた
各種ホームページを参照して調査したところ、サービス間でのプロトコルの違いが原因となっていました。
EC2で動作しているWordPressがHTTPで接続しに来ているのか、HTTPSで接続に来ているのかを誤って認識していることが原因でした。
インターネット→CloudFrontがHTTPS CloudFront→EC2がHTTPとなっています。
CloudFrontを介すると、クライアントからはHTTPSで接続に来ているが、WordPressがHTTPと誤認してしまいリダイレクトが発生してしまうとのことでした。wp-config.phpを修正してHTTPSで接続することを明記することでこのエラーは解消できます。
プロトコルの違いが原因でリダイレクトが起きるという発想はなかった…!
解決策 wp-config.phpを修正(修正するファイルに注意!)
wp-config.phpを修正します。
ここで注意してほしいのが、どのwp-config.phpを修正するのかという点です。wordpressをインストールする際、適当な作業フォルダ、例えば/home/ec2-userにwordpressフォルダを解凍するかと思います。しかし、EC2で動いているWordPressはそのフォルダのwp-config.phpは見に行っていません。
多くの場合は/var/www/html/wp-config.php が修正するべきファイルです。
どこのフォルダに入っているかわからない方は下記コマンドでwp-config.phpの場所を検索してみてください。
sudo find / -name wp-config.php
修正の内容ですが、
define( 'WP_DEBUG', false );
の下にあるコメントAdd any custom values between this line and the “stop editing” line.
の下に$_SERVER[‘HTTPS’] = ‘on’;を記述します。(上記コメントは複数個所にあるので修正箇所はお間違えないようにお願いします。)wp-config.phpは極めて重要な設定ファイルなので事前にバックアップを取っておくことを推奨します。
以下、記入例です。
/* Add any custom values between this line and the "stop editing" line. */
/* 以下を追加 */
$_SERVER['HTTPS'] = 'on';
/* That's all, stop editing! Happy publishing. */
修正箇所は注意して!誤った記述になるとWordPressが動かなくなることもあるので事前バックアップ推奨です!
この記述を行うことによって、WordPressが使用しているプロトコルをHTTPSで指定できるようです。
これでERR_TOO_MANY_REDIRECTSを解消してWordPress管理画面にアクセスできるようになりました。
PR
当ブログはWordPressテーマSWELLを使用しています。非常に使いやすく、簡単にプロのようなデザインを使えるのでお勧めです!!
SWELL – シンプル美と機能性両立を両立させた、圧巻のWordPressテーマ
システムエンジニア
AWSを中心としたクラウド案件に携わっています。
IoTシステムのバックエンド開発、Datadogを用いた監視開発など経験があります。
IT資格マニアでいろいろ取得しています。
AWS認定:SAP, DOP, SAA, DVA, SOA, CLF
Azure認定:AZ-104, AZ-300
ITIL Foundation
Oracle Master Bronze (DBA)
Oracle Master Silver (SQL)
Oracle Java Silver SE
■略歴
理系の大学院を卒業
IT企業に就職
AWSのシステム導入のプロジェクトを担当