权限被拒绝:/var/www/abc/.htaccess pcfg_openfile:无法检查 htaccess 文件,确保它是可读的?

Posted

技术标签:

【中文标题】权限被拒绝:/var/www/abc/.htaccess pcfg_openfile:无法检查 htaccess 文件,确保它是可读的?【英文标题】:Permission denied: /var/www/abc/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable? 【发布时间】:2014-01-04 19:08:56 【问题描述】:

大家好,我在我的网站上使用 php,在我的系统上使用 ubuntu linux。即使正确配置了所有内容,我在 apache 的 error.log 文件中也遇到了上述错误。我对此做了很多研究,但无法解决这个问题。任何人都可以在这方面帮助我吗?以下是我在abc directory 中的 .htaccess 文件。有人可以在这方面帮助我吗?

# -FrontPage-

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
AuthName abc.org
AuthUserFile /home/abc/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/abc/public_html/_vti_pvt/service.grp
Options -Indexes

RewriteEngine On
RewriteRule ^alumni$ alumni.php
RewriteRule ^student$ student.php
RewriteRule ^view_alumni_article/view/([0-9]+)$ view_alumni_article.php?op=view&article_id=$1

【问题讨论】:

你启用了 SELinux 吗? 【参考方案1】:

确保 apache 可以读取 htaccess 文件:

chmod 644 /var/www/abc/.htaccess 

并确保它所在的目录是可读的可执行文件:

chmod 755 /var/www/abc/

【讨论】:

我有同样的问题,改变上面的权限使它工作。但是,我对根目录为755 不满意。当我做到751 时,它似乎可以工作。这是要塞东西吗? 我相信这个工作有例外。如果您有 suphp 和/或 suexec,如果您的文件可按组写入,您可能会收到额外的错误。如果我错了,请纠正我。 +1 表示简短但最有效的解决方案。我完全被这个错误搞砸了,但你的解决方案很不错! 它没有解决我的问题。【参考方案2】:

当我更改一次使用的主目录时,我遇到了同样的问题。就我而言,这是因为selinux。我使用以下方法解决了这个问题:

selinuxenabled 0
setenforce 0

【讨论】:

我遇到了同样的问题,我没有禁用 selinux,而是发现 sudo restorecon -R &lt;path to site&gt; 足以解决问题。 Anessh 的解决方案对我有用......因为上面的所有其他解决方案都依赖于selinux 不活跃——权限问题只是权限问题。但是如果 selinux 阻止了一切(与restorecon 相同),那么这些解决方案将毫无意义。我的 CentOS 6 LAN web 服务器上的问题通过禁用selinux 解决了——直到电源故障发生并显示 selinux 设置在不编辑 conf 文件的情况下没有保存。在重启时保存 selinux 设置 vi /etc/sysconfig/selinux 找到并将 SELINUX=enabled 行更改为 SELINUX=disabled 重启你的 MACHINE 解决了我的问题。 如果文件权限没问题,这就是redhat like distribution的正确解决方案【参考方案3】:

如果它进入 selinux 领域,你就会遇到一个更复杂的问题。移除 selinux 保护并不是一个好主意,而是接受它并使用旨在管理它的工具。

如果您使用/var/www/abc 提供内容,则可以使用附加到普通ls -l 命令的Z 来验证selinux 权限。即ls -laZ 将给出 selinux 上下文。

要添加一个由 selinux 提供服务的目录,您可以像这样使用semanage 命令。这会将/var/www/abc 上的标签更改为httpd_sys_content_t

semanage fcontext -a -t httpd_sys_content_t /var/www/abc

这将更新/var/www/abc的标签

restorecon /var/www/abc 

此答案取自 unixmen 并经过修改以适合此问题。我一直在寻找这个答案一段时间,终于找到了,所以觉得我需要在某个地方分享。希望它可以帮助某人。

【讨论】:

试试 yum install policycoreutils-python 你总是可以找到要安装的包,使用类似这样的提供。 $yum whatprovides /usr/sbin/semanage 在 CentOS 7 上没有任何运气。检查权限,执行,按照描述运行 semanage/restorecon。仍然收到错误 你重启了吗?可能是挂着的东西。 如果第一个不起作用,这是第二个正确答案。【参考方案4】:

我也陷入了这个困境,相信我禁用 SELinux 不是一个好主意。

请在下面使用,你很好,

sudo restorecon -R /var/www/mysite

享受..

【讨论】:

以上是关于权限被拒绝:/var/www/abc/.htaccess pcfg_openfile:无法检查 htaccess 文件,确保它是可读的?的主要内容,如果未能解决你的问题,请参考以下文章

apache配置中的权限被拒绝:[Errno 13]权限被拒绝

WinSCP:权限被拒绝。错误代码:3来自服务器的错误消息:权限被拒绝[关闭]

权限被拒绝(缺少 INTERNET 权限?):但已授予权限

访问被拒绝:获取云端硬盘凭据时权限被拒绝

访问被拒绝:BigQuery BigQuery:写入数据时权限被拒绝

Laravel 权限被拒绝 bootstrap/cache/packages.phpkC7P4V 无法打开流:权限被拒绝