WordPressへBasic認証を導入する方法のメモです。
AMIで使用しているNginxで.htaccessを使ってBasic認証を導入した所、うまく行かなくて詰みました。
調べてみるとそもそもAMIのNginxでは.htaccessは使えないらしい…ということがわかりました。
Basic認証導入手順
以下の設定をしてあげることでBasic認証を導入することができました。
1. .htpasswdの作成
Basic 認証のユーザー名を「test」としたい場合は以下のコマンドを実行し、パスワードを入力します。
$ htpasswd -c /etc/nginx/conf.d/.htpasswd test New password:xxxxxxxxxxxxxxx Re-type new password:xxxxxxxxxxxxxxx
成功すると、
Adding password for user test
と表示されます。
2. configファイルの編集
以下のように設定ファイルを編集します。
- 変更前
$ vim /etc/nginx/conf.d/www.conf --------------------------------------- server { listen 80 default_server; server_name localhost; root /var/www/public_html/wordpress; #auth_basic "Basic Auth"; #auth_basic_user_file /etc/nginx/basic/.htpasswd; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; } ---------------- 以下略 ----------------
- 変更後
$ vim /etc/nginx/conf.d/www.conf --------------------------------------- server { listen 80 default_server; server_name localhost; root /var/www/public_html/wordpress; auth_basic "Basic Auth"; auth_basic_user_file /etc/nginx/basic/.htpasswd; location / { index index.php index.html index.htm; try_files $uri $uri/ /index.php?$args; } ---------------- 以下略 ----------------
ベーシック認証の設定がコメントアウトされているのでコメントアウトを外してあげます。
3. 設定の確認
以下のコマンドで設定に問題がないかを確認します。
$ nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
このように表示されればOKです。
4. Nginxの再起動
設定を反映させるために以下のコマンドでNginxを再起動します。
$ systemctl restart nginx
5. アクセスしてみる
実際にサイトにアクセスしてみてBasic認証の画面が表示されれば成功です。