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

问题描述 投票:0回答:5

大家好,我的网站使用 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
php apache .htaccess mod-rewrite
5个回答
152
投票

确保 apache 可以读取 htaccess 文件:

chmod 644 /var/www/abc/.htaccess 

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

chmod 755 /var/www/abc/

34
投票

当我更改一次使用的主目录时,我遇到了同样的问题。就我而言,这是因为

selinux
。我使用以下方法解决了这个问题:

selinuxenabled 0
setenforce 0

8
投票

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

如果您提供

/var/www/abc
之外的内容,您可以使用附加到普通
Z
命令的
ls -l
来验证 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 并进行修改以适应这个问题。我一直在寻找这个答案一段时间,终于找到了,所以我觉得我需要在某个地方分享。希望它对某人有帮助。


1
投票

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

请使用下面的就可以了,

sudo restorecon -R /var/www/mysite

享受..


0
投票

只需按照此页面上的说明进行操作:https://docs.nextcloud.com/server/latest/admin_manual/installation/selinux_configuration.html

以下设置应该适用于大多数使用默认发行版配置文件的 SELinux 系统。以 root 身份运行这些命令,并记住根据您的安装调整这些示例中的文件路径:

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?'

restorecon -Rv '/var/www/html/nextcloud/'
© www.soinside.com 2019 - 2024. All rights reserved.