仮想ホストをいじっていましたが、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>
今それは働いています。
Httpd.confなどの他のconfファイル内のDocumentRootのGrep-vhosts以外の場所で定義されていますか?デフォルトのDocumentRootが実際に/ var/wwwにあるかどうかは、質問とフォローアップからは不明です。/var/wwwではないまったく異なるディレクトリツリーを指す別のDocumentRootを持つことができます。その場合、/ var/wwwの権限を変更しても何も影響しません。
また、「ウェブルート上のファイルにアクセスする」と言うとき、正確にはどういう意味ですか?どのようにファイルにアクセスしていますか?
しましたか
Chown -R www-data:www-data /var/www
Apacheを実行しているユーザーが/ var/wwwにアクセスする権限を持っていることを確認してください
お役に立てば幸いです、RayQuang
どこかにデフォルトのドキュメントが定義されていますか?それが欠落しているか、デフォルトとして使用しているファイル名が含まれていない場合、403が返されることがよくあります。