- ベストアンサー
.htaccessと.htpasswdとetc/apache2でユーザー認証を設定する方法
- SUSE LinuxのApache2でユーザー認証=Basic認証を試みていますが、.htaccessを配置しても認証ボックスが表示されません。
- httpd.confの<Directory "/--/--/">---</Directory>を編集しても、Apacheが動作しませんでした。
- 詳しい設定方法や解決策を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
じゃあワンステップづつ進めましょう まず最初の状態で 正常に.htmなどにアクセス出来ることを確認してから、、 第一段階: .htaccessの有効確認 .htaccess に test と記述します これでアクセスすると ・1-A:Internal Server Errorとなりerror_logに"/.htaccess: Invalid command 'test'"と記録される =>.htaccessは有効です第3段階に進む ・1-B:何も変化無し =>.htaccessが無効です 第2段階で設定やり直し1-Aの状態になるまで頑張ってください 第2段階 allowoverrideの設定 httpd.conf のalowoverrideを変更しますが LANの中だけならAllで良いでしょう 問題はちゃんと該当する<Directory コンテナに記述しないと行けないのですが 例えば http://localhost/~tarou/ のようなユーザーディレクトリなら <Directory /home/*/public_html> AllowOverride All ですし http://localhost/ のようにドキュメントルートなら httpd.confの DocumentRoot "/var/www/html" などと指定されたDirectoryで この場合なら <Directory "/var/www/html"> AllowOverride All となります。 AllowOverride Allを記述してから httpdを再起動し 1-Aの状態になるまで何度でもやり直してください 第3段階: やっとbasic認証 .htaccessから testの文字を消し 次の6行を記述します AuthUserFile /home/hoge/.htpasswd AuthName " " AuthType Basic <Limit GET POST> require valid-user </Limit> ###AuthUserFile は勿論あなたのパスにあわせます ###AuthName の"" に入れる文字列は何でも良いのですが ###最低でも半角スペース1個は入れないとエラーになります ###また日本語の文字列を入れることはは取り合えずやめて置いてください ### 前述の6行を記述して Internal Server Error になる場合は文法的に問題がありますので error_logを確認して .htaccess を書き直してください
お礼
umasikajiro様 ありがとうございました。SUSE はpasswd2 ということがわかりました。 default-server.conf に <Directory> AuthUserFile ---と書き足したら、できました。