You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Apache无法访问网站目录的权限配置求助

Apache无法访问网站目录的权限配置求助

问题描述

我用Apache作为网站的Web服务器,网站文件放在/home/reiji/Documents/native_project_2目录下。目前/home/reiji目录的权限是750(对应权限位drwxr-x---),这样的权限下Apache没法访问我的网站。我用whoami命令查到Apache运行的用户是www-data,之后把www-data加入了reiji用户组,重启服务器后网站还是无法访问。

按道理说,目录权限750的话,组用户拥有读和执行权限,把www-data加到目录所属的用户组里,应该就能访问网站目录了才对。

另外附上我的Apache配置:

<Directory /home/reiji/Documents/native_project_2>
Require all granted
</Directory>

<VirtualHost 127.0.0.2:80>
DocumentRoot /home/reiji/Documents/native_project_2
FallbackResource /index.php
ErrorLog /home/reiji/Documents/native_project_2/error.log
</VirtualHost>

我已经用a2ensite启用了这个配置,并且重启过服务器了,还是不行,请问该怎么配置权限让Apache能访问网站目录?


解决方案

别着急,咱们一步步排查解决:

  1. 确认用户组是否生效
    www-data加入reiji组后,得确保Apache进程已经获取到新的组权限。先重启Apache服务试试:

    systemctl restart apache2
    

    也可以直接查看www-data的组信息,确认reiji在列表里:

    groups www-data
    

    如果没看到reiji,说明加组操作没生效,重新执行usermod -aG reiji www-data,再重启Apache。

  2. 检查整个目录链的权限
    Apache要访问到网站目录,得能遍历整个路径:/home/home/reiji/home/reiji/Documents/home/reiji/Documents/native_project_2,每一级目录都需要**执行权限(x)**才能进入下一级。

    • 先确认/home目录权限,默认一般是drwxr-xr-x,如果不是就设置:chmod o+x /home
    • 再检查/home/reiji/Documents的权限,确保组用户有r-x权限:chmod g+rx /home/reiji/Documents
  3. 确认目录的所属组
    检查/home/reijiDocuments以及网站目录的所属组是不是reiji

    ls -ld /home/reiji /home/reiji/Documents /home/reiji/Documents/native_project_2
    

    输出的第三列应该是reiji,如果不是,用这条命令修正:chgrp -R reiji /home/reiji/Documents/native_project_2

  4. 模拟Apache用户验证访问
    切换到www-data用户,手动尝试访问网站目录,看看具体哪里出问题:

    su -s /bin/bash www-data
    cd /home/reiji/Documents/native_project_2
    ls
    

    如果这里报错,就根据错误提示调整对应目录的权限;如果能正常进入并列出文件,那可能是Apache配置有冲突,再检查虚拟主机的路径是否正确,或者有没有其他配置文件覆盖了当前设置。

  5. SELinux的潜在限制(针对RHEL/CentOS等系统)
    如果你用的是带SELinux的系统,就算文件权限对了,SELinux也可能阻止Apache访问用户家目录。可以临时关闭SELinux测试:setenforce 0,如果网站能访问了,就配置SELinux规则放行:

    semanage fcontext -a -t httpd_sys_content_t "/home/reiji/Documents/native_project_2(/.*)?"
    restorecon -Rv /home/reiji/Documents/native_project_2
    

备注:内容来源于stack exchange,提问作者Reiji Akkerman

火山引擎 最新活动