14

我正在尝试使用 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给出:

[Mon Dec 17 21:10:52 2012] [crit] [client 127.0.0.1] (13)Permission denied: /folder/to/silex_project/web/.htaccess pcfg_openfile: 无法检查 htaccess 文件,确保它是可读的

我已经用 chmod 修改了整个项目文件夹chmod a+r -R。同一文件夹中的其他项目可以正常使用该.htaccess文件。

.htaccess文件确实存在。

4

4 回答 4

30

chmod 755 -R /silex_project/解决了我的问题。我仍然不知道为什么 Apache 需要写权限才能工作。

于 2012-12-17T20:32:06.503 回答
19

这可能是因为运行 Apache 的用户对该目录没有 eXecute 权限。还需要读取其中的文件。chmod a+rx /folder/to/silex_projects可能会解决你的错误。

chmod 755 -R也不能通过提供写访问权限来解决这个问题,而是因为这恰好也添加了 eXecute。

于 2013-11-04T15:55:37.830 回答
2

除了发布的其他答案之外,如果您要更改可能从发行版“默认”位置访问文件的任何内容,那么在这种情况下,SELinux (如果已启用)可能会咬到您。

解决方法是为目录/文件向 selinux 添加适当的策略,或者如果您不希望 selinux 安全运行,则禁用它。

于 2013-12-18T01:27:38.340 回答
1

我也有这个错误,发现这个很好的参考 (13)权限被拒绝:/home/username/.htaccess pcfg_openfile:无法检查htaccess文件,确保它是可读的

查看您的域时,如果您看到错误“禁止”,然后检查您的 apache 日志:/var/log/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(对于用户)设置为 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 上没有出现过,所以可能不需要。

于 2013-12-14T07:21:37.643 回答