User Directory或Userdir是一个 Apache 模块,它允许使用语法通过 Apache Web 服务器检索特定于用户的目录http://example.com/~user/
。
例如,当启用mod_userdir模块时,系统上的用户帐户将能够通过 Apache Web 服务器访问其主目录中的内容。
在本文中,我们将向您展示如何使用 Apache Web 服务器在RHEL、CentOS和Fedora服务器上启用 Apache userdirs ( mod_userdir )。
本教程假设您已经在 Linux 发行版上安装了 Apache Web 服务器。如果还没有,您可以使用以下过程安装它......
第 1 步:安装 Apache HTTP 服务器
要安装 Apache Web 服务器,请在 Linux 发行版上使用以下命令。
# yum install httpd [在CentOS/RHEL上] # dnf 安装 httpd [在Fedora上]
![](https://www.alaica.com/wp-content/uploads/linux-582.png)
第 2 步:启用 Apache Userdirs
现在您需要在配置文件中配置您的 Apache Web 服务器以使用此模块/etc/httpd/conf.d/userdir.conf
,该文件已经配置了最佳选项。
# vi /etc/httpd/conf.d/userdir.conf
然后验证内容,如下所示。
# 如果收到~用户请求则目录。 # # 最终用户帐户“public_html”目录的路径必须是 # 可访问网络服务器用户 ID。这通常意味着 ~userid # 必须有711权限,~userid/public_html必须有权限 # 755,其中包含的文档必须是全世界可读的。 # 否则,客户端只会收到“403 Forbidden”消息。 # <IfModule mod_userdir.c> # # UserDir 默认被禁用,因为它可以确认存在 # 系统上的用户名(取决于主目录 # 权限)。 # UserDir 启用示例 # # 启用对 /~user/ 的请求以服务用户的 public_html # 目录,删除上面的“UserDir禁用”行,并取消注释 # 改为以下行: # 用户目录 public_html </如果模块> # # 控制对 UserDir 目录的访问。下面是一个例子 # 对于这些目录被限制为只读的站点。 # <目录“/home/*/public_html”> ## Apache 2.4 用户使用以下## AllowOverride FileInfo AuthConfig 限制索引 选项 MultiViews 索引 SymLinksIfOwnerMatch IncludesNoExec 需要方法 GET POST OPTIONS ## Apache 2.2 用户使用以下## 期权索引包括 FollowSymLinks 允许覆盖全部 允许所有 订单拒绝、允许 </目录>
![](https://www.alaica.com/wp-content/uploads/linux-583.png)
要允许少数用户访问UserDir
目录,但不允许其他用户访问目录,请在配置文件中使用以下设置。
用户目录已禁用 UserDir 已启用 testuser1 testuser2 testuser3
要允许所有用户访问UserDir
目录,但对少数用户禁用此功能,请在配置文件中使用以下设置。
用户目录已启用 UserDir 已禁用 testuser4 testuser5 testuser6
根据您的要求进行配置设置后,您需要重新启动 Apache Web 服务器以应用最近的更改。
# systemctl restart httpd.service [在SystemD上] # 服务 httpd 重新启动 [在SysVInit上]
第三步:创建用户目录
现在您需要public_html
在用户/用户主目录中创建一个/多个目录。例如,这里我在example的用户主目录public_html
下创建一个目录。
# mkdir /home/example/public_html
接下来,对用户home和public_html目录应用正确的权限。
# chmod 711 /home/示例 # chown 示例:示例 /home/example/public_html # chmod 755 /home/example/public_html
![](https://www.alaica.com/wp-content/uploads/linux-584.png)
另外,为 Apache homedirs ( httpd_enable_homedirs )设置正确的SELinux上下文。
#setsebool -P httpd_enable_homedirs true # chcon -R -t httpd_sys_content_t /home/example/public_html
第 4 步:测试启用的 Apache Userdir
最后,通过将浏览器指向服务器主机名或 IP 地址,后跟用户名来验证Userdir 。
http://example.com/~example 或者 http://192.168.0.105/~示例
![](https://www.alaica.com/wp-content/uploads/linux-585.png)
如果需要,您还可以通过创建以下文件来测试 HTML 页面和 PHP 信息。
创建包含以下内容的/home/example/public_html/test.html文件。
<html> <头> <title>示例是适用于 Linux 的最佳站点</title> </头> <正文> <h1>示例是 Linux 的最佳站点</h1> </正文> </html>
![](https://www.alaica.com/wp-content/uploads/linux-586.png)
使用以下内容创建/home/example/public_html/test.php文件。
<?php phpinfo(); ?>
![](https://www.alaica.com/wp-content/uploads/linux-587.png)
就这样!在本文中,我们解释了如何启用Userdir模块以允许用户共享其主目录中的内容。如果您对本文有疑问,请随时在下面的评论部分提问。