ファイルを提供するためにApacheを設定したフォルダ名があり、public
何らかの理由で403エラーメッセージが表示されます。
このサーバーに/アクセスする権限がありません。
test
私の解決策は、隣に別のフォルダ()を作成し、それを使用してファイルを提供することでした。
私が理解できないのは、なぜ2つのフォルダ間の権限が同じですが、最初のフォルダを使用すると権限エラーが発生する理由です。
これをどのようにさらに診断できますか?
ls -l
以下を提供します。
drwxrwxr-x 2 daniel daniel 4096 Apr 26 19:10 public
drwxrwxr-x 2 daniel daniel 4096 Apr 26 19:10 test
編集する
コンテンツ/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
DocumentRoot /home/daniel/public/default/public/
DirectoryIndex index.html index.php
LogLevel warn
ErrorLog /home/daniel/public/default/log/error.log
CustomLog /home/daniel/public/default/log/access.log combined
</VirtualHost>
次のディレクティブが設定されています/etc/apache2/apache2.conf
<Directory /home/daniel/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
下で/home/daniel/public/default
実行するls -Zd public test
と
drwxrwxr-x 2 daniel daniel ? 4096 Apr 28 13:44 public
drwxrwxr-x 2 daniel daniel ? 4096 Apr 28 13:44 test
答え1
Apacheエラーログを確認することをお勧めします(/var/log/Apache/Debian/Ubuntu または/var/log/httpd/RedHatとその派生物について)。エラーログには、特権エラーやその他の問題がある場合は、より詳細なエラー指示が表示されます。
もう一度試すもう1つの方法は、Apacheユーザーを使用してsudoを使用してアクセスするファイルの数を数えることです。おおよそ次のようになります。
sudo -u apache2 stat /var/www/public/index.html
Webルートが/var/wwwにあり、Apacheサーバーがapache2ユーザーとして実行されているとします。上記のコマンドは、Apacheプロセスが(十分なファイルシステム権限を使用して)問題のファイルを読み取ることができることを確認します。読み取り可能な場合(権限の拒否ではなく統計出力が表示されます)、@mdpcが提案したように、Apacheサーバーの設定自体に問題がある可能性があります。
答え2
特定のディレクトリに許可/拒否ディレクティブがあるかどうかを確認するには、Apache設定ファイルを確認してください。