Fedora 34系统Apache部署Laravel出现access forbidden错误求助
问题排查与解决方案
1 确认SELinux为问题根源
首先临时关闭SELinux验证问题:setenforce 0
刷新页面如果可以正常访问,说明就是SELinux权限限制导致的403错误,验证完成后重新开启SELinux:setenforce 1
不要直接永久关闭SELinux,会带来安全风险
2 配置SELinux文件上下文规则
Fedora默认开启SELinux强制模式,Apache进程仅有权限访问带有httpd_sys_content_t上下文的文件,你将项目放在用户家目录下,默认上下文不符合Apache的访问要求,按以下步骤修改:
- 给整个Laravel项目设置可读的SELinux上下文:
chcon -R -t httpd_sys_content_t /home/myuser/gitlab/register/ - Laravel的storage和bootstrap/cache目录需要写入权限,单独配置可写上下文:
chcon -R -t httpd_sys_rw_content_t /home/myuser/gitlab/register/storage/chcon -R -t httpd_sys_rw_content_t /home/myuser/gitlab/register/bootstrap/cache/ - 持久化规则,避免系统重启后配置失效:
semanage fcontext -a -t httpd_sys_content_t "/home/myuser/gitlab/register(/.*)?"semanage fcontext -a -t httpd_sys_rw_content_t "/home/myuser/gitlab/register/storage(/.*)?"semanage fcontext -a -t httpd_sys_rw_content_t "/home/myuser/gitlab/register/bootstrap/cache(/.*)?" - 应用持久化规则:
restorecon -Rv /home/myuser/gitlab/register/
3 可选排查项(如果上述操作后仍有问题)
- 检查rewrite模块是否开启,执行命令:
httpd -M | grep rewrite
如果没有输出,执行a2enmod rewrite开启模块,之后重启httpd服务:systemctl restart httpd - 检查项目上层目录的权限,确保/home/myuser、/home/myuser/gitlab目录权限至少为755,可执行命令设置:
chmod 755 /home/myuser /home/myuser/gitlab
内容的提问来源于stack exchange,提问作者Mohammad Jalili
相关产品推荐
相关产品推荐

