
Ubuntu日本語フォーラム
ログインしていません。
「Ubuntuサーバー徹底構築」という本で、設定をしてみています。
P.131~ ベーシック認証で、特定のディレクトリ(/var/www/html/privateディレクトリ)には認証されたユーザしかアクセスできないようにできるはずなのですが、
エラーがでてできません。.htaccesファイルが読めないといっていますができません。
何がおかしいのかヒントでもよいので、教えていただけないでしょうか。よろしくお願いいたします。
ブラウザからアクセスすると↓のようなエラーがでます。
Forbidden
You don't have permission to access this resource.Server unable to read htaccess file, denying access to be safe
オフライン
件の書籍を持っているとは限らないので、ご自身が実施した手順を明示しないと回答を得るのは難しいと思います。
あと、.htacces ではなく .htaccess (末尾の s が二つ) です。別のファイル名を使うように明示していなければ。
オフライン
やったことは、
1. /var/www/html/private内にある .htaccessファイルの設定を変えています。
<Directory /var/www/html/private>
AllowOverride all
Require all denied
</Directory>
2. Apacheの再起動
$ sudo systemctl restart apache2
3. .htaccessファイルを作成して
$ nano /var/www/html/private/.htaccess
4 .htaccessファイルにベーシック認証の設定を記述しました。
AuthUserfile /var/www/.htpasswd
AuthName "Please input user ID and Password."
AuthType Basic
Require valid-user
5. ユーザ名とパスワードを登録
$ sudo htpasswd -b -c /var/www/.htpasswd user1 password1
6. ブラウザにURLを入力
http://Ubuntu ServerのIPアドレス/private/
これで、ベーシック認証のダイアログボックスが表示されると、説明にはありますが、.htaccessが読み込めないというエラーのようで、先に進めません。
.htaccessファイルは、実際にはつづりも間違えていませんで、ls -al コマンドで確かにあることは確認できています。
ちょっと気になるのは、 4のベーシック認証の設定の記述で、他のネットで情報を検索してみると、 AuthUserFile とFの字が大文字になっている例を見つけまして、
これが原因かと思いましたが、修正してもエラーのままでした。1の設定も AllowOverride allのall をAllとしている例もありましたが、修正してみてもエラーのままです。
オフライン
ls -l /var/www/html/private/.htaccess と ls -dl /var/www/html/private の結果を提示してください。
その結果を見ないとなんとも言えませんが、たぶん sudo chmod a+r /var/www/html/private/.htaccess を実行していないのが原因かもしれません。
オフライン
権限の問題の可能性があるということですね。
やってみました。
ls -l /var/www/html/private/.htaccess
-rw-r--r-- 1 root root 112 1月 2 19:34 /var/www/html/private/.htaccess
ls -dl /var/www/html/private
drwx------ 2 taisuke root 4096 1月 2 19:34 /var/www/html/private
xは実行権限、wは書き込み、rは読み込みなので、確かに .htaccessに実行権限がないです。
ひとまず、ご返答致します。
オフライン
いろいろいじってみているのですが、どうにもこうにもできません。
何かおわかりになりますでしょうか?Linuxってなんか難しいものなんですね。
➀htaccessファイルは実行権限ではなくrの読み取り権限でよいのかと思いなおしてみたり、
→とりあえず、全部 r はついているようです。
➁エラーのメッセージには、htaccess の前に . ドットがないので、ドットがいらないのかなとも思ってみたりしています。
You don't have permission to access this resource.Server unable to read htaccess file, denying access to be safe
↑
オフライン
やったことは、の1の前に、
・フォルダの作成
sudo mkdir /var/www/html/private
・chownコマンドを実行しています。
sudo chown taisuke /var/www/html/private
オフライン
全部最初からやってみようと思い、作ったディレクトリもファイルもすべて削除して、もう一度最初からトライしたところ、
「ベーシック認証のダイアログポップアップ」は表示されるようになりました。少し前進です。
が、残念なことにユーザ名とパスワードを入力すると、まだ、エラーがでます。
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
訳すと
内部サーバーエラー
サーバーで内部エラーまたは構成の誤りが発生したため、要求を完了できませんでした。
サーバー管理者のwebmaster @ localhostに連絡して、このエラーが発生した時間と、このエラーの直前に実行したアクションを通知してください。
このエラーに関する詳細情報は、サーバーエラーログで参照できる場合があります。
/var/log/apache2/access.log と
/var/log/apache2/error.log
を表示してみたのですが、どこを見たらよいのかわからない感じでした。
オフライン
ご指導いただき、ありがとうございました。
さらにもう一回、すべて消して、最初からやり直したところ、うまくいきました。
どこを間違えていたのかわかりませんが、どこかに入力ミスがあったのかもしれません。
とりあえず、「ベーシック認証」をやってみることができました。ユーザー名とパスワードを入力したら開きました。
正直、半べそ状態でしたが、なんかよかったです。
ありがとうございました。
オフライン
BlueDragon による投稿:
ls -l /var/www/html/private/.htaccess
-rw-r--r-- 1 root root 112 1月 2 19:34 /var/www/html/private/.htaccess
Apache2 の実行ユーザーである www-data で読めればいいのでこっちは問題無さそう。
BlueDragon による投稿:
ls -dl /var/www/html/private
drwx------ 2 taisuke root 4096 1月 2 19:34 /var/www/html/private
これだと、Apache2 から /var/www/html/private にあるファイルが読めません。
sudo chmod o+rx /var/www/html/privateとして、www-data を含む全てのユーザーに対してに読み込みと実行の権限を付与しておく必要があります。
すべてのユーザーに付与するならグループに付与しない理由はないので、sudo chmod go+rx /var/www/html/private の方が見た目きれいですけどね。
その後の Internal ServerError は該当箇所のログがないと何とも分からないので、ご容赦ください。
何はともあれ最終的には巧く言ったとのことでよかったです。
オフライン