apache 本身无内置 users 目录,所谓“users 目录”实为用户家目录(如 /home/username)中由 userdir public_html 指令指定的子目录;启用后,apache 通过 http://server/~username 访问 /home/username/public_html,需同步配置权限、selinux 及模块加载。

Apache 本身没有内置的 users 目录,所谓“users 目录”其实是用户家目录(如 /home/username)中用于存放个人主页内容的子目录,最常见的是 public_html。它不是 Apache 安装路径下的标准目录,而是通过配置让 Apache 从用户家目录中读取网页内容。
个人主页功能依赖的目录结构
启用个人主页后,Apache 会按规则查找每个用户的网站根目录,典型路径是:
-
/home/用户名/public_html/—— 默认配置下实际生效的网站根目录 -
/home/用户名/—— 用户家目录,必须具备可执行(x)权限才能被 Apache 进入 -
/var/www/html/—— 全局网站根目录,与个人主页无关,不参与 users 路径逻辑
关键配置项决定目录行为
核心配置在 /etc/httpd/conf.d/userdir.conf 或主配置中:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
UserDir public_html:指定每个用户家目录下哪个子目录作为其个人站点根目录(可改名,但需同步创建) -
UserDir disabled(被注释掉):表示启用该功能;若未注释,则整个功能关闭 -
<directory></directory>区块:控制该路径的访问权限,通常需包含Require all granted(Apache 2.4+)
权限与安全必须同步设置
仅创建目录和文件远远不够,以下三类权限缺一不可:
-
文件系统权限:用户家目录需
chmod 755 /home/username,确保 Apache(运行在apache或www-data用户下)能进入;public_html及其内容建议755/644 -
SELinux 策略:默认禁止 Apache 访问用户家目录,需开启:
setsebool -P httpd_enable_homedirs on
必要时补做上下文修复:restorecon -Rv /home/username/public_html -
防火墙与服务状态:确保
httpd正在运行,且防火墙放行 80 端口:firewall-cmd --permanent --add-service=http && firewall-cmd --reload
访问路径与软链接变通方式
启用后访问地址固定为:http://服务器IP/~用户名(波浪号不可省略)
若想去掉 ~,可通过软链接实现:
- 在全局网站根目录创建映射:
ln -s /home/username/public_html /var/www/html/username - 此时可通过
http://服务器IP/username访问,但注意该方式绕过 UserDir 机制,不自动继承<directory></directory>的安全策略










