原文链接 在配置服务器个人主页的时候,发现网上的资料大多是2.4之前版本的,与新版的apache配置有些许不同,因此写了这篇文章。
准备工作
- 查看apache版本
我的版本是2.4.6,个人主页相关的配置文件在httpd -v
和/etc/httpd/conf.modules.d/00-base.conf
etc/httpd/conf.d/userdir.conf
- 查看
,必须有/etc/httpd/conf.modules.d/00-base.conf
模块,如:userdir_module
$ cat /etc/httpd/conf.modules.d/00-base.conf | grep userdir LoadModule userdir_module modules/mod_userdir.so
修改apache 配置文件
- 进入
设置,将第17行的/etc/httpd/conf.d/userdir.conf
加上注释并取消24行UserDir disabled
的注释(可以更改UserDir后面文件夹的名字,比如UserDir public
)UserDir www
- 添加下面的代码到
文件中/etc/httpd/conf/httpd.conf
这里要注意的是,apache2.4版本已经取消了#将name和username按情况替换掉 <Directory "/home/username/www"> AllowOverride None Options Indexes FollowSymLinks Require all granted </Directory>
的使用,而采用Order Deny,Allow Allow from All
来设置对目录的访问。Require all granted
- 设置别名
Alias /name/ "/home/usename/www/"
创建文件根目录
- 进入个人家目录,创建一个文件夹www和测试页面
mkdir ~/www cd ~/www echo "Test home dir" >> index.html
将selinux关闭,查看是否可以访问。
修改权限和selinux设置
开启selinux服务
个人家目录要允许apache软件访问,必须设置家目录和www目录可读可执行权限,比如
$ chmod 755 /home/username
$ chmod 755 ~/www -R
另外,需要修改selinux设置,否则会显示
Permission denied
。
$ ll -Z ~/ #查看家目录下各目录上下文
其中www目录必须有
user_home_t
内容,若没有,则执行
# chcon -t user_home_t /home/username/www -R
然后,开启服务器个人主页权限
# setsebool httpd_enable_homedirs on
到此个人目录可以使用,将代码放到~/www目录下吧^_^。