将子域添加到我们的虚拟服务器时,出现了一个奇怪的问题。 我以前做过类似的子域,他们工作得很好。
当我尝试访问子域时,出现403 Forbidden错误。
我检查了错误日志,并有以下错误:
pcfg_openfile: unable to check htaccess file, ensure it is readable
我search了Google,只能find有关文件和文件夹权限的解决scheme,我已经检查并且解决scheme没有解决。 我也看到了FrontPage扩展的问题,但没有安装在服务器上。
编辑
忘了说,在子域的目录中没有.htaccess文件
编辑#2
仍然无法find解决scheme。 只有我能够发现的事情是:
编辑#3
了解更多信息。 我不认为它现在可能是一个文件权限问题,因为如果我通过访问服务器IP,然后站点所在的目录访问它,它都可以正常工作(减去样式表和图像,这只是到了他们如何链接)
你在使用Apache ITK MPM吗? 版本2.2.17修复了一个可能导致403错误的错误(请参阅更新日志 )。
使用AssignUserId指令时遇到同样的问题。 当我给文件和文件夹世界可读/可执行的权限,它消失了。
你是什么用户编辑.htaccess文件? 你能列出这个文件的权限吗? 它可能是因为用户apache正在运行,因为无法读取文件。
您需要更改引用文件夹的权限。 该文件夹需要是拥有apache进程的用户可执行文件。
尝试在该目录中创build一个空的htaccess文件与正确的权限,因为它可能会由于一些奇怪的原因期望读一个,但不能
403错误可能是由于不允许该目录的目录索引
尝试以apache用户身份(su – apache)login,并确保该目录可读。
有同样的问题:
webroot /var/www和www-data拥有的所有文件,所有文件都可读,所有目录都可执行。 曾尝试访问以www-data( sudo -u www-data bash ,然后cd /var/www/<somedir> )login的错误中提到的目录。 一切正常。
但是还是得到了上面的错误:
AH00529: /var/www/admin/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/var/www/admin/' is executable
另外,我发现,这个文件夹中没有.htaccess文件。 我读过的一些线程提到创build空的htaccess文件,所以我试图(作为根)
cd /var/www/admin touch .htaccess chown www-data .htaccess
下一次我访问我的网站,错误再次发生,但在另一个目录。 所以仔细检查,添加一个htacces文件导致相同的错误在同一目录。 否则,以下可能会有所帮助:
cd /var/www for DIR in $(find . -type d); do touch $DIR/.htaccess chown www-data $DIR/.htaccess done
这对我有效。 所以我猜,当AllowOverride ALL被设置时,我们使用的apache版本在他们遇到的每个dir中寻找一个htaccess文件。 然后他们失败了,当没有足够的时候,他们就会继续前进。
我遇到过类似的问题:我的“/ var / www”文件夹是Apache无法访问的。 我的networking服务器在VirtualBox主机内部运行,并且在客户机(SLES11)和主机(Windows)之间共享www文件夹。 问题是www文件夹是一个VirtualBox文件系统挂载点,而linux Apache用户(nobody)没有被授权浏览挂载点。
为了解决这个问题,我把nobody用户join了VBOXFS组:
$>usermod -G vboxsf nobody
我必须重新启动客户端进行此修改才能反映到Apache,现在可以运行。