CentOS 6 VPS 上のすべての https URL が複数の vhost にわたって 403 を返していることがわかりました。何が起こっているかを確認するために確認すべき構成設定はどこかにありますか? またはデバッグに役立つログはありますか?
答え1
ログは にあります/var/log/httpd
(表示するには 'root' である必要があります)。 と がaccess_log
そこerror_log
にあります。
ファイルの権限を設定/確認しましたか? グループはapache
最低限、ファイルを読み取ることができる必要があります。たとえば、私 (ユーザーgareth
) が にサイトを持っている場合/var/www/html
:-
$ls -l /var/www/html
-rwxr-----. gareth apache 30 Jun 23 13:35 test.html
ご覧のとおり、私はrw
ファイルにアクセスでき、Apache サービスもr
アクセスできます。また、次のようになります。
$ls -ld /var/www/html
drwx--x---. gareth apache 4096 Jun 23 13:35 /var/www/html/
ウェブサイトを含むディレクトリには、 Apache がディレクトリを読み取ることができるように、グループx
の権限が必要ですapache
。同様に、その親ディレクトリにもx
権限が設定されている必要があります。また、親の親などにも権限が設定されている必要があります。
ファイルの権限が正常であれば、それがSELinux
原因ではないことを確認します。以下を実行します:-
`setenforce 0`
もう一度試してください。これで問題が解決した場合、問題は にありますSELinux
。以下を実行することを忘れないでください:-
`setenforce 1`
SELinux を再度有効にします。
答え2
403 ステータス コードは、クライアントが要求されたリソースにアクセスできないことを示します。これは通常、URL が参照しているファイルやディレクトリに、HTTP サーバーがアクセスするための権限がないことを示します。
/var/log/httpd/access_log
HTTP サーバーが使用するユーザー名/グループに、このディレクトリにアクセスするための十分な権限があることを確認します。また、たとえば HTTP サーバーが Apache の場合は、にこの情報が表示されます。
Apache のユーザー/グループは設定ファイルで定義されます/etc/httpd/conf/httpd.conf
。
例
$ grep -E "^User|^Group" /etc/httpd/conf/httpd.conf
User apache
Group apache
答え3
どうやら mod-spdy-beta_current_x86_64.rpm のインストールに問題があったようです。それを削除してサーバーを再起動すると解決しました。