apache配置虚拟主机

前言

这类文章有很多,这里更偏重理解(个人理解),供参考

意义:

我刚开始学php时,按网上教程配起来没问题,但不理解为什么要配虚拟主机,为什么在直接用localhost/**项目/文件能访问情况下,还要建虚拟主机,通过虚拟主机\文件方式访问?
后来学了服务器,逐渐理解了,这和写代码道理类似,为什么要写函数,写类,为什么要MVC,而不是很直白的一个函数里写一堆代码解决问题?写多了,自然明白。建虚拟主机最直接的作用,不用每次敲那么长的请求url

原则

这里先给出配虚拟主机的原则,再通过这个原则下配虚拟主机带来的好处,来体会其意义。

一个项目对应一个虚拟主机

好处

  1. 每个项目对请求的处理可能不同,你可以给项目设不同请求处理规则,如某些类型文件,A项目不允许访问,B项目则允许。这其实意味着,一个虚拟主机对应一套请求处理规则
  2. 两个项目可以不放在同一个目录下。
  3. 请求url更能体现意义,如我给本地的自己的博客项目建博客虚拟主机blog.kbell.me/, 见名知意,它表示kbell的博客,但其实际指向的目录并非那么简洁,如果我用不建虚拟主机用localhost/.../blog..访问,过一个月不看可能我自己都忘了这是什么项目。

步骤

在服务器上配置

  1. 在服务商域名管理里配置,域名指向你的服务器ip地址,前提是你要有域名,如果没域名,忽略这一步吧。这步完成后,请求域名,就能转到你的服务器了。
  2. 找到httpd-vhost文件
  3. httpd-vhost文件添加,保存

    <VirtualHost *:80>
        DocumentRoot "项目所在目录"
        ServerName 域名
    </VirtualHost>

    ServerName要填你的域名,如果没域名,就填你服务器的ip地址,如果没服务器,看在本地配置吧~

  4. 重启apache
  5. 访问 刚才填写的域名

在本地配置(windows环境):

  1. 给host文件添加:
    文件位置C:\Windows\System32\drivers\etc\hosts

    127.0.0.1   域名

    这里域名填上什么都可以,不需要你有真正域名。

    理解:从你本机发出的域名请求(如blog.kbell.me),都会先找本机hosts文件,看它是否知道你请求的域名对应哪个ip地址,如果hosts文件有
    127.0.0.1 blog.kbell.me
    就会访问127.0.0.1,而这个ip是环回ip,即把请求转回本机。与上面第一步意义相同,这步完成后,输入blog.kbell.me,请求就能转到你的主机了。如果hosts找不到域名的对应ip,才会向dns服务器找。

  2. 剩下步骤同上,serverName 填127.0.0.1对应那个即可

总结

  1. 让请求能找到你期望的主机
    • 服务器上:服务商域名管理设置域名->ip地址
    • 本地上:改hosts文件,添加规则 域名->ip地址
  2. 让你的主机能识别请求(根据请求找到目录/文件):在httpd-vhost文件里建立 域名->具体目录 对应关系
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值