我们发现 CentOS 6 VPS 上的所有 https URL 在多个虚拟主机上都返回 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/
包含该网站的目录必须具有x
该apache
组的权限,以便apache可以读取该目录。同样,它的父目录也必须具有x
权限集。还有父母的父母等等。
如果文件的权限正常,请检查这SELinux
不是罪魁祸首。跑步:-
`setenforce 0`
然后再试一次。如果现在有效,则问题是由于SELinux
.记得运行:-
`setenforce 1`
重新启用 SELinux。
答案2
403状态码表示客户端无法访问所请求的资源。这通常表明 URL 引用的文件和/或目录不具有允许 HTTP 服务器访问它的权限。
确认 HTTP 服务器使用的用户名/组具有足够的权限来访问此目录。此外/var/log/httpd/access_log
,例如,如果 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 的安装出了问题。删除它并重新启动服务器即可解决问题。