質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1008閲覧

【AWS】【WordPress】ドキュメントルートにHTTP通信するとリダイレクトループする

waito

総合スコア23

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2019/01/03 07:12

編集2019/01/03 20:25

前提・実現したいこと

閲覧頂きありがとうございます。
個人的に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');

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2019/01/04 00:27

.htaccess は、デフォルトのままでしょうか? apache の RewriteLog を取得できれば、原因が判別しやすいと思いますが、ログを取得することは可能ですか? ログを取得するには、対象Webサーバ名の httpd.conf か バーチャルホストの設定の中で、RewriteLog ( https://httpd.apache.org/docs/2.2/ja/mod/mod_rewrite.html#rewritelog ) や RewriteLogLevel ( https://httpd.apache.org/docs/2.2/ja/mod/mod_rewrite.html#rewriteloglevel ) を設定してください。
waito

2019/01/05 05:56 編集

CHERRYさん 閲覧とご回答ありがとうございます。 .htaccessは特に何もいじっていません。 (私の環境ではデフォルトでは存在しないように見えます。) RewriteLogについてはhttpd.confに下記のように記述してみたのですが、 中に何も書き込まれていませんでした。(apacheは再起動済み) RewriteLog "/tmp/rewrite.log" RewriteLogLevel 9 ただ、ブラウザには相変わらずリダイレクトループのエラーが出ています。 もしかしたら私のhttpd.confの書き方が悪いのかもしれませんが、今から出張のため、一旦現状をご報告します。 以上です。
guest

回答1

0

自己解決

解決していないですが閉じます。

投稿2020/10/21 20:00

waito

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問