权限被拒绝:/var/www/abc/.htaccess pcfg_openfile:无法检查htaccess文件,请确


Permission denied: /var/www/abc/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable?

大家好,我在我的网站上使用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

确保htaccess文件可由apache:读取

chmod 644 /var/www/abc/.htaccess 

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

chmod 755 /var/www/abc/

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

selinuxenabled 0
setenforce 0

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

如果您在/var/www/abc之外提供内容,则可以通过在普通ls -l命令后面附加一个Z来验证selinux权限。即CCD_ 6将给出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,并根据这个问题进行了修改。我一直在寻找这个答案,终于找到了,所以我觉得我需要在某个地方分享。希望它能帮助到别人。

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

请只使用下面的,你很好,

sudo restorecon -R /var/www/mysite

享受。。