在向我们的虚拟服务器添加子域名时,我遇到了一个奇怪的问题。我以前做过类似的子域名,而且运行良好。
当我尝试访问子域时,出现 403 禁止错误。
我检查了错误日志并发现以下错误:
pcfg_openfile: unable to check htaccess file, ensure it is readable
我在 Google 上搜索过,但只找到了有关文件和文件夹权限的解决方案,我检查过但解决方案并没有解决。我还看到了 Frontpage Extensions 的问题,但服务器上没有安装它。
编辑
忘了说子域名目录中没有 .htaccess 文件
编辑#2
仍然无法找到解决方案。我唯一能找到的是:
- 这似乎不是任何 .htaccess 文件的问题(我尝试创建具有正确用户权限的空白文件)。
- 这似乎不是任何文件夹权限的问题,因为它们都设置正确。
- 子域名的设置方式没有问题,因为我尝试将 DocumentRoot 指向另一个文件夹,并且运行正常。我之前也成功设置了子域名,没有任何问题。
编辑#3
查找更多信息。我认为现在不可能是文件权限问题,因为如果我通过转到服务器 IP 然后转到托管网站的目录来访问它,一切都会正常工作(减去样式表和图像,这只取决于它们的链接方式)
答案1
您正在使用 Apache ITK MPM 吗?版本 2.2.17 修复了一个可能导致 403 错误的错误(请参阅变更日志)。
使用 AssignUserId 指令时我遇到了同样的问题。当我授予文件和文件夹全局可读/可执行权限后,问题就解决了。
答案2
我遇到了类似的问题:Apache 无法访问我的“/var/www”文件夹。我的 Web 服务器在 VirtualBox 主机内运行,www 文件夹在客户机 (SLES11) 和主机 (Windows) 之间共享。问题是 www 文件夹是 VirtualBox 文件系统挂载点,而 Linux Apache 用户 (nobody) 无权浏览该挂载点。
为了解决这个问题,我将 nobody 用户添加到 VBOXFS 组:
$>usermod -G vboxsf nobody
我必须重新启动客户机才能让这个修改反映到 Apache 上,现在它可以正常工作了。
答案3
您以哪个用户身份编辑了 .htaccess 文件?您能列出此文件的权限吗?可能是因为运行 apache 的用户无法读取该文件。
答案4
尝试在该目录中创建一个具有正确权限的空白 htaccess 文件,因为出于某种奇怪的原因,它可能希望读取一个但却无法读取
403 错误可能是由于不允许对该目录进行目录索引