大家好,我的网站使用 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
确保 apache 可以读取 htaccess 文件:
chmod 644 /var/www/abc/.htaccess
并确保它所在的目录是可读的并且可执行:
chmod 755 /var/www/abc/
当我更改一次使用的主目录时,我遇到了同样的问题。就我而言,这是因为
selinux
。我使用以下方法解决了这个问题:
selinuxenabled 0
setenforce 0
如果它进入 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 并进行修改以适应这个问题。我一直在寻找这个答案一段时间,终于找到了,所以我觉得我需要在某个地方分享。希望它对某人有帮助。
我也陷入了这个困境,相信我禁用 SELinux 不是一个好主意。
请使用下面的就可以了,
sudo restorecon -R /var/www/mysite
享受..
只需按照此页面上的说明进行操作: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/'