あけましておめでとうございます。2017年第一回目の記事(あけおめ記事は自動のため除く)です。
0. 状況
筆者もBasic認証をVPN上(VPN上でなくても解決できる)でWordPressを運用しているサーバ上にBasic認証を施そうとしたところ500 Internal Server Error (内部サーバエラー)が発生しました。ちなみに使用しているApache サーバはRaspberry Pi – Raspbianです。
書いてる内容は
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の設定を載せておきます。
それではよいお年を。
以上
[amazonjs asin=”B00BH772VU” locale=”JP” title=”できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 できるPROシリーズ”]