Apache2でのBasic認証で発生する500 Internal Server Error問題の解決法


あけましておめでとうございます。2017年第一回目の記事(あけおめ記事は自動のため除く)です。

0. 状況

筆者もBasic認証をVPN上(VPN上でなくても解決できる)でWordPressを運用しているサーバ上にBasic認証を施そうとしたところ500 Internal Server Error (内部サーバエラー)が発生しました。ちなみに使用しているApache サーバはRaspberry Pi – Raspbianです。

500 Internal Server Error

書いてる内容は

500 Internal Server Error
サーバ内部でエラーもしくは、構成ミスが発生したため、要求が完了できませんでした。
サーバ管理者に連絡して、エラーが発生した時刻、エラー直前に実行した操作を報告してください。
このエラーの詳細については、サーバエラーログを確認してください。

エラーを引き起こしたのは他でもない管理者である筆者なのだった…。この時に気づけばよかったのだが、『サーバーエラーログ』を見ていればすんなりと解決しました。

筆者もネットでググりまくっても出てくるのは、文字コードによるもの、改行によるもの、ファイルネームが間違っているものと全部試してみても500が解決する様子はない…。

1. これで解決

最初からエラーログを見ていれば簡単でした。ちなみにlogが保存されているところは、グループがadmなので最初からrootでログインしておきましょう。次の方法で確認します。

$ sudo su
# cat /var/log/apache2/error.log

エラーの内容はいかほどなものか…。

[Sun Jan 01 08:01:43.414406 2017] [core:alert] [pid 1345] [client 25.XXX.XXX.XXX:XXX] /var/www/.htaccess: Invalid command ‘AuthGroupFile’, perhaps misspelled or defined by a module not included in the server configuration, referer: http://25.XXX.XXX.XXX/

AuthGroupFileはどうやら存在しないコマンドということみたいです。viなりで.htaccessを編集してAuthGroupFileの行を削除します。ちなみにこのコマンドは、グループ指定などに使うコマンドですが、なくても問題ないらしい。しかし、問題はこれだけではないみたいです。

[Sun Jan 01 08:11:01.869283 2017] [core:alert] [pid 1321] [client 25.XXX.XXX.XXX:XXX] /var/www/html/.htaccess: AuthName takes one argument, the authentication realm (e.g. “Members Only”), referer: http://25.XXX.XXX.XXX/

AuthNameの構成が間違っているとのこと。ダブルコーテーションのみでくくれ!って言われた…。

#変更前
AuthName "Please enter your ID and password";
#変更後
AuthName "Please enter your ID and password"

これですべてのエラーが解消されて、無事にBasic認証が動作しました。

2. 参考 .htaccess

ここに.htaccessの設定を載せておきます。

WordPress.comではうまくcodeが実行できないので画像で…。

それではよいお年を。

以上

[amazonjs asin=”B00BH772VU” locale=”JP” title=”できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 できるPROシリーズ”]


コメントを残す

※メールアドレスの入力は必須ではありません。
※商品紹介や悪意のあるコメントはご遠慮ください。