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

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

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

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

AWS(Amazon Web Services)

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

Q&A

解決済

1回答

3847閲覧

EC2でwordpressで立ち上げたサイトにベーシック認証をかけたい

Tatsurou

総合スコア81

WordPress

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

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2017/10/10 10:30

####やりたい事
立ち上げたec2インスタンス(WordPress Certified by Bitnami)の
サイト全体にBasic認証をかけたい

####環境
・mac

####やった事
ドキュメントルート(/opt/bitnami/apps/wordpress/htdocs)に、
.htaccessと、.htpasswdファイルを作成。

AuthUserFile /home/opt/bitnami/apps/wordpress/htdocs/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / WriteCheckString:xxxxxxxxxxxxxxxx RewriteRule .* - [E=HTTP_MOD_REWRITE:On] </IfModule>
user:xxxxxxxxxU

###読んだ記事
EC2でWordpressをインストールしましたが、.htaccessがうまく動作しない
上記の記事を読んでみたのですが、
下記のファイルがまずない。
他のディレクトリに「httpd.conf」ファイルが3種類あった。

/etc/httpd/httpd.conf

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

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

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

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

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

guest

回答1

0

ベストアンサー

WordPress Certified by BitnamiはカスタマイズされたAMIなので、Apacheの設定ファイルも独自の構成となっているようです。
AMIのバージョンは念の為下記の2つで確認していますが、下記手順でBasic認証をかけられるようでした。

  • 4.7.4-0 on Ubuntu 14.04.3
  • 4.8.1-0 on Ubuntu 14.04

コマンドの実行はすべてbitnamiユーザーで実施しています。

bash

1$ whoami 2bitnami 3 4# パスワードファイルの作成(隠しファイルは見づらいので、ここではdot.htpasswdで作成) 5$ htpasswd -c ~/dot.htpasswd suyama 6New password: 7Re-type new password: 8Adding password for user suyama 9$ ls ~ 10apps dot.htpasswd htdocs stack 11 12# .htaccessの作成 13$ cd /opt/bitnami/apps/wordpress/htdocs/ 14$ vi .htaccess 15# => Basic認証設定を追記 16$ cat .htaccess 17AuthName "Please enter your ID and password" 18AuthUserFile /home/bitnami/dot.htpasswd 19AuthType Basic 20require valid-user 21 22# .htaccessでの認証情報設定の有効化 23$ cd /opt/bitnami/apps/wordpress/conf/ 24$ cp -p httpd-app.conf httpd-app.conf.`date '+%Y%m%d'` 25$ diff httpd-app.conf httpd-app.conf.`date '+%Y%m%d'` 26$ vi httpd-app.conf 27# => 11行目付近のAllowOverrideを"AuthConfig"に修正 28# .htaccessで認証設定以外も行う場合は、必要に応じて"All"とするなどしてください 29$ diff httpd-app.conf httpd-app.conf.`date '+%Y%m%d'` 3011c11 31< AllowOverride AuthConfig 32--- 33> AllowOverride None 3440c40 35< 36--- 37> 38\ No newline at end of file 39$ apachectl configtest 40Syntax OK 41$ sudo apachectl graceful

提示いただいている.htaccessでは、2点問題があるようでした。
0. /home/opt 標準ではディレクトリは存在しないはずで、おそらく/homeが不要かと思います。
0. .htpasswdファイルをドキュメントルートであるhtdocs配下に配置すると、外部から参照されてしまう可能性があるため、好ましくありません。
標準で".ht"で始まるファイルにはアクセス制限がかかっているはずですが、パスワードファイルの取り扱いには十分注意した方がよいかと思います。

投稿2017/10/10 21:52

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Tatsurou

2017/10/11 02:56

2つのバージョンで試していただきありがとうございます。 ただ、ご教授頂いた手順通りやりましたが、basic認証がかからなかったです。。 もしかして、Lets Encryptで、https化して、 HSTSでリダイレクトさせているのが問題でしょうか。 教えて頂いた通り、「httpd-app.conf」に、 AllowOverride None  ↓ AllowOverride ALL ※ AllowOverride AuthConfigも試しました。 のように記述いたしました。 そのあと、「apachectl configtest」をした時に、 error 「Syntax error on line XX of /path/to/ssl.conf: SSLCertificateFile: file '/path/to/cert.pem' does not exist or is empty」が出たので、 下記の記事のように、パーミッションを744から755に変更しました。 https://www.proto-star.com/2016/04/24/lets-encrypt-apache-%E3%81%A7%E3%81%A1%E3%82%83%E3%82%93%E3%81%A8%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E7%94%9F%E6%88%90%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%A6%E3%82%8B%E3%81%AE%E3%81%AB/ そのあと、syntax OKと出たのですが、ページにアクセスしても何も変化がありません。難しいですね。。
退会済みユーザー

退会済みユーザー

2017/10/12 13:02

Let's Encryptは設定ファイルを編集するので、インストール直後のhttpd.conf設定とはまた違った形となっているのかもしれません。 EC2上でLet's Encryptで証明書を導入して、ELBやCloudFrontは通していないという認識ですがあっていますでしょうか。 Let's Encryptの導入も試してみますが、/opt/bitnami/apps/wordpress/conf/httpd-vhosts.confのServerNameはwordpress.example.comではなく、HTTP/HTTPSでアクセスする際のドメイン名となっているでしょうか。 また、/opt/bitnami/apache2/conf/httpd.confのDocumentRootを/opt/bitnami/apps/wordpress/htdocs/に変更して運用している等はされているでしょうか。
退会済みユーザー

退会済みユーザー

2017/10/12 13:24

もう1点確認させてください。 今起動しているApacheは、下記のどちらでしょうか。 ・/opt/bitnami/apache2/bin/httpd.bin ・/usr/sbin/apache2 確認は " ps -ef | grep apache " 等のコマンドを実行すれば可能かと思います。
Tatsurou

2017/10/13 01:45

追加のアドバイスありがとうございます。 > EC2上でLet's Encryptで証明書を導入して、 > ELBやCloudFrontは通していないという認識ですがあっていますでしょうか。 はい、ご認識あっております。 > /opt/bitnami/apps/wordpress/conf/httpd-vhosts.confのServerNameは > wordpress.example.comではなく、HTTP/HTTPSでアクセスする際のドメイン名となっているでしょうか。 こちら、exampleのままでございます。 > /opt/bitnami/apache2/conf/httpd.confのDocumentRootを > /opt/bitnami/apps/wordpress/htdocs/に変更して運用している等はされているでしょうか。 こちらは、下記のようになっています。 DocumentRoot "/opt/bitnami/apache2/htdocs" <Directory "/opt/bitnami/apache2/htdocs"> > 今起動しているApacheは、下記のどちらでしょうか。 $ sudo /opt/bitnami/ctlscript.sh restart apache /opt/bitnami/apache2/bin/httpd.bin だと思います。 $ ps -ef | grep apacheの実行結果は、下記の通りです。 bitnami 13246 13217 0 01:42 pts/0 00:00:00 grep --color=auto apache root 32605 1 0 Oct10 ? 00:00:06 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf daemon 32613 32605 0 Oct10 ? 00:00:39 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf daemon 32614 32605 0 Oct10 ? 00:00:38 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf daemon 32747 32605 0 Oct10 ? 00:00:38 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問