我只是想在 Red Hat Linux 服务器上以我的用户名创建一个 public_html 文件夹(这一切都有点令人头疼)。
我创建了文件夹并将权限设置为 755。
我不确定如何处理 Apache(并且不可否认,由于目录布局非常规,找到 httpd.conf 文件是一场噩梦),但现在我找到了它,我不知道该怎么做。
我见过这个问题;为 Linux 机器的每个用户设置单独可访问的 public_html,但我不明白答案。我该如何“使用 mod_userdir”(我对这些都很陌生)。
我已经看过这个了;
http://httpd.apache.org/docs/2.0/mod/mod_userdir.html
我是否应该在“httpd..conf 文件”中添加一些内容?
我尝试将“UserDir enabled username”附加到顶部,然后重新启动 Apache,但仍然找不到页面;
domain.com/~username/
问题可能出在哪里?
我是否错误地使用了 mod_userdir?(我甚至不知道如何使用它)
谢谢!
答案1
您安装了哪个版本的 RedHat?在 RedHat 6.x 上,这非常简单:
1)假设我有一个ec2-user
创建了主目录的用户/home/ec2-user
2) 创建一个目录,并/home/ec2-user/public_html
确保该目录的权限至少为 0711(可执行位设置为其他意味着运行 apache2 web 服务器的用户将有权进入这些目录)。此外,该目录的任何内容都必须对用户可读。/home/ec2-user
/home/ec2-user/public_html
apache
apache
3) 在 apache2 web 服务器配置中启用UserDir
模块,该模块位于文件中/etc/httpd/conf/httpd.conf
。注释掉该行UserDir disabled
并取消注释该行UserDir public_html
:
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disabled
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html
</IfModule>
4)使用 测试 apache2 web 服务器配置httpd -t
,它应该返回Syntax OK
,否则会出错
5)重新启动 apache2 web 服务器service httpd restart
,并可选择chkconfig httpd on
在启动时启用该服务
enforcing
6)最后,如果你在模式下启用了 selinux - 你可以使用以下命令进行检查sestatus
- 你必须运行此命令setsebool -P httpd_read_user_content=on
以允许 apache2 web 服务器读取用户内容
7)测试它,例如从服务器运行w3m http://localhost/~ec2-user
,如果有任何错误,它们应该记录到日志文件中/var/log/httpd/error_log