我正在尝试使用Silex Bootstrap建立一个网站。 我把它放在我的文件夹中与其他Web项目一起,并在Apache配置中更改了DocumentRoot。
<Directory /folder/to/silex_projects/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
但是我无法打开框架的索引页面,Apache给出了:
[2012年12月17日星期一21:10:52] [暴击] [客户端127.0.0.1](13)权限被拒绝:/ folder / to / slax_project / web / .htaccess pcfg_openfile:无法检查htaccess文件,确保它是可读的
我用chmod a+r -R
chmod了整个项目文件夹。同一文件夹中的其他项目与.htaccess
文件一起正常工作。
.htaccess
文件确实存在。
答案 0 :(得分:30)
chmod 755 -R /silex_project/
解决了我的问题。我仍然不知道为什么Apache需要写权限才能工作。
答案 1 :(得分:19)
这可能是因为运行Apache的用户对目录没有eXecute权限。还需要读取其中的文件。 chmod a+rx /folder/to/silex_projects
可能已经解决了您的错误。
你的chmod 755 -R
并没有通过提供写访问来解决这个问题,但是因为这恰好也会添加eXecute。
答案 2 :(得分:2)
除了发布的其他答案之外,在这种情况下除了可以咬你之外的其他东西是SELinux(如果它已启用),如果你正在更改从分发“默认”位置访问文件的任何内容。
修复是为目录/文件的selinux添加适当的策略,或者如果你不想运行selinux安全性,则禁用它。
答案 3 :(得分:1)
我也有这个错误并且发现这个好的参考(13)Permission denied: /home/username/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
查看域名时,如果看到“禁止访问”错误,请检查您的apache日志: 在/ var /日志/的httpd / error_log中 /var/log/httpd/domains/domain.com.error.log
并看到错误:
[crit] [client 1.2.3.4] (13)Permission denied: /home/username/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
这意味着apache对您的/ home / username目录没有读取权限。
原因可能是权限相关,配置相关或所有权相关。
Apache以用户“apache”运行,因此该用户或组的目录必须为+ x。
1)从DirectAdmin 1.38.0开始,我们实现了secure_acccess_group功能,该功能将/ home / user(对于Users)设置为chmod 750和chown username:access。 apache用户将位于“访问”组中。要确认这一点,请键入以下内容:
[root@server]# grep ^access: /etc/group
access:x:506:apache,nobody,mail,majordomo,daemon
你应该得到类似于显示的输出。
如果您获得一个空白的用户列表,则访问组存在,但为空。要正确填充组(在RedHat / CentOS / Debian系统上),请键入:
usermod -G access apache
usermod -G access nobody
usermod -G access mail
usermod -G access majordomo
usermod -G access daemon
在FreeBSD系统上,创建组的命令是:
pw groupadd -n access -M apache,nobody,mail,majordomo,daemon
但这意味着该组尚不存在。在FreeBSD上没有看到这种情况,因此很可能不需要。