Apache配置虚拟主机,基于主机名的方式

1.配置hosts文件

vim /etc/hosts
172.19.74.12   wenlong1.wen.com
172.19.74.12   wenlong2.wen.com
172.19.74.12   wenlong3.wen.com

2.创建网站目录,index.html中写入不同内容

mkdir -p /home/www/{wenlong1,wenlong2,wenlong3}
echo "wenlong1  page" > /home/www/wenlong1/index.html
echo "wenlong2  page" > /home/www/wenlong2/index.html
echo "wenlong3  page" > /home/www/wenlong3/index.html

3.在Apache配置文件中配置虚拟主机信息

vim /etc/httpd/conf/httpd.conf
<Directory "/home/www/wenlong1">
    Require all granted
</directory>
<VirtualHost 172.19.74.12>
    DocumentRoot "/home/www/wenlong1"
    ServerName "wenlong1.wen.com"
</VirtualHost>

<Directory "/home/www/wenlong2">
    Require all granted
</directory>
<VirtualHost 172.19.74.12>
    DocumentRoot "/home/www/wenlong2"
    ServerName "wenlong2.wen.com"
</VirtualHost>

<Directory "/home/www/wenlong3">
    Require all granted
</directory>
<VirtualHost 172.19.74.12>
    DocumentRoot "/home/www/wenlong3"
    ServerName "wenlong3.wen.com"
</VirtualHost>
# 检查配置文件中语法是否正确
httpd  -t

4.重启Apache,发现403访问被拒绝,怀疑因selinux上下文引起

说明:如果嫌麻烦你可以关掉selinux,具体请百度。我这里没有关,修改了站点的安全上下文

systemctl  restart httpd
curl wenlong1.wen.com/index.html

# 查看selinux状态,发现是强制模式
getenforce 

# 为验证是否因selinux引起,将状态改为宽容模式,再次验证
setenforce 0

5.确定是selinux引起的问题,修改selinux上下文

# 将selinux设置为强制模式
setenforce 1
# 创建新的默认规则,修改selinux上下文

# 下边命令在 /etc/selinux/targeted/contexts/files/file_contexts.local中加了一条默认规则
semanage fcontext  -a  -t  httpd_sys_content_t  "/home/www(/.*)?"

备注: /etc/selinux/targeted/contexts/files/file_contexts.local截图如下

# 按照上边加的规则,递归将新的上下文应用到/home/www/文件夹和它的子目录
restorecon -R  /home/www/
# 再次测试,并测试其它虚拟主机,参看下边图片
curl wenlong1.wen.com/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值