前提・実現したいこと
閲覧頂きありがとうございます。
個人的にAWSを勉強したく、
AWSでWordPressの環境を構築して、下記を実現したいと考えていますが、
想定通りにいかず困っています。
わかる方がいらっしゃいましたらご回答お願いします。
- 使用するサービス:
ELB、EC2、VPC
- 実現したい環境:
HTTP通信はELBで受ける(HTTPSは考慮しない)
WEBサーバはELBからのみアクセス可能、
DBサーバはWEBサーバからのみアクセス可能
- ゴール:
上記の環境を構築後、ELBのDNS名をブラウザから入力して、
WordPressで構築した自分のブログのトップページが表示される
- 現在の環境:
ELB:
ヘルスチェックはOK(「/index.php」を指定)
リスナーはHTTP(80)のみ
パブリックサブネットに配置
・WEBサーバ:
EC2(AmazonLinux)とApache/2.2.34 (Unix)で構築
httpd.confのDirectoryIndexにindex.phpを追加
(修正後にservice httpd restart実行)
.htaccessは作成していない
プライベートサブネットに配置
・DBサーバ:
EC2(AmazonLinux)とMySQLで構築
wp_optionsテーブルのoption_nameがhomeとsiteurlのレコードのoption_valueには、「http://[ELBのDNS名]」をセット
WEBサーバと同じプライベートサブネットに配置
・WordPress:
セットアップ(DB名入力など)済み
プラグインは適用なし
- していないこと:
・独自ドメインの取得
・Route53の使用
・HTTPS通信のための設定
また、前提として、AWSはもちろんですが、
WEBサーバ(Apache)もDBサーバもWordPressの知識もほとんどないので、
質問自体が的外れでしたら申し訳ございません。
発生している問題・エラーメッセージ
ブラウザからELBのDNS名にHTTP通信をするとリダイレクトループします。
(ブラウザに「ERR_TOO_MANY_REDIRECTS」が表示されてエラーになります。)
ただ、ELBのDNS名に「/index.php」をつけてHTTP通信すると正しくWordPressのトップページが表示されます。
また、ELBのDNS名に「/wp-admin」をつけてHTTP通信すると正しくWordPressの管理画面が表示されます。
リダイレクトループするパターン
http://[ELBのDNS名]
正常にトップページが表示されるパターン
http://[ELBのDNS名]/index.php
試したこと
telnetでWEBサーバのポート80に対して、
GET / HTTP/1.1
Host: [ELBのDNS名]
とすると下記が返ってくる。
Content-Type: text/html; charset=UTF-8
Content-Length: 0
Connection: keep-alive
Server: Apache/2.2.34 (Amazon)
X-Powered-By: PHP/5.3.29
Location: http:[ELBのDNS名]
また、telnetでWEBサーバのポート80に対して、
GET /index.php HTTP/1.1
Host: [ELBのDNS名]
とすると下記が返ってくる。
HTTP/1.1 200 OK
Date: Thu, 03 Jan 2019 06:51:20 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache/2.2.34 (Amazon)
X-Powered-By: PHP/5.3.29
Link: http://[ELBのDNS名]/index.php/wp-json/; rel="https://api.w.org/"
Link: http://[ELBのDNS名]/; rel=shortlink
2133
(以下、htmlのため省略)
ご質問内容
URL(ELBのDNS名)をブラウザに入力して、
トップページを表示する方法が分かれば、ご教授下さい。
補足情報(httpd.confとwp-config.php)
長いので必要なければ無視して下さいm(_ _)m
__
・httpd.conf
DirectoryIndexにindex.phpを追加しています。
DirectoryIndex index.php index.html index.html.var
・wp-config.php
直接ファイルの更新はせず、
WordPressのセットアップで自動更新された箇所のみ更新されています。
<?php /** * WordPress の基本設定 * * このファイルは、インストール時に wp-config.php 作成ウィザードが利用します。 * ウィザードを介さずにこのファイルを "wp-config.php" という名前でコピーして * 直接編集して値を入力してもかまいません。 * * このファイルは、以下の設定を含みます。 * * * MySQL 設定 * * 秘密鍵 * * データベーステーブル接頭辞 * * ABSPATH * * @link http://wpdocs.osdn.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86 * * @package WordPress */ // 注意: // Windows の "メモ帳" でこのファイルを編集しないでください ! // 問題なく使えるテキストエディタ // (http://wpdocs.osdn.jp/%E7%94%A8%E8%AA%9E%E9%9B%86#.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E3.82.A8.E3.83.87.E3.82.A3.E3.82.BF 参照) // を使用し、必ず UTF-8 の BOM なし (UTF-8N) で保存してください。 // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', '[対象のDB名を入力]'); /** MySQL データベースのユーザー名 */ define('DB_USER', '[対象のユーザー名を入力]'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', '[対象のパスワードを入力]'); /** MySQL のホスト名 */ define('DB_HOST', '[対象DBサーバのプライベートIPを入力'); /** データベースのテーブルを作成する際のデータベースの文字セット */ define('DB_CHARSET', 'utf8mb4'); /** データベースの照合順序 (ほとんどの場合変更する必要はありません) */ define('DB_COLLATE', ''); /**#@+ * 認証用ユニークキー * * それぞれを異なるユニーク (一意) な文字列に変更してください。 * {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵サービス} で自動生成することもできます。 * 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、すべてのユーザーを強制的に再ログインさせることになります。 * * @since 2.6.0 */ define('AUTH_KEY', '自動生成された文字列を入力'); define('SECURE_AUTH_KEY', '自動生成された文字列を入力'); define('LOGGED_IN_KEY', '自動生成された文字列を入力'); define('NONCE_KEY', '自動生成された文字列を入力'); define('AUTH_SALT', '自動生成された文字列を入力'); define('SECURE_AUTH_SALT', '自動生成された文字列を入力'); define('LOGGED_IN_SALT', '自動生成された文字列を入力'); define('NONCE_SALT', '自動生成された文字列を入力'); /**#@-*/ /** * WordPress データベーステーブルの接頭辞 * * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を * インストールすることができます。半角英数字と下線のみを使用してください。 */ $table_prefix = 'wp_'; /** * 開発者へ: WordPress デバッグモード * * この値を true にすると、開発中に注意 (notice) を表示します。 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。 * * その他のデバッグに利用できる定数については Codex をご覧ください。 * * @link http://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0 */ define('WP_DEBUG', false); /* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ /** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); /** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php');
回答1件
あなたの回答
tips
プレビュー