web-dev-qa-db-ja.com

webrootにアクセスしようとしたときに403エラーが発生しました

仮想ホストをいじっていましたが、Webルート上のファイルにアクセスしようとすると403エラーが発生します。

これが私のhttpd-vhosts.confです:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /var/www
</VirtualHost>


<VirtualHost *:80>
    ServerName test.ts
    DocumentRoot /var/www/htdocs/vhost_test 
    <Directory /var/www/htdocs/vhost_test>
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Httpd.confにhttpd-vhosts.confを含む行をコメントアウトし、問題がなくなったので、vhostsの問題であると確信しています。どうしたんだ?

編集:Phil Hollenbackがこの問題を解決してくれた翌日、サーバーは再び動作を開始しました。以前と同じ問題で、以前と同じことをしても今回は解決しませんでした。だから私はこれでhttpd-vhosts.confを変更しようとしました:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /var/www
    <Directory />                   #added this tag
        Allow from all
    <Directory>
</VirtualHost>

今それは働いています。

2
liewl

Httpd.confなどの他のconfファイル内のDocumentRootのGrep-vhosts以外の場所で定義されていますか?デフォルトのDocumentRootが実際に/ var/wwwにあるかどうかは、質問とフォローアップからは不明です。/var/wwwではないまったく異なるディレクトリツリーを指す別のDocumentRootを持つことができます。その場合、/ var/wwwの権限を変更しても何も影響しません。

また、「ウェブルート上のファイルにアクセスする」と言うとき、正確にはどういう意味ですか?どのようにファイルにアクセスしていますか?

2
Phil Hollenback

しましたか

Chown -R www-data:www-data /var/www

Apacheを実行しているユーザーが/ var/wwwにアクセスする権限を持っていることを確認してください

お役に立てば幸いです、RayQuang

1
RayQuang

どこかにデフォルトのドキュメントが定義されていますか?それが欠落しているか、デフォルトとして使用しているファイル名が含まれていない場合、403が返されることがよくあります。

1
squillman