先来解释“虛拟主机”,早期的 Linux服务器上,一个服务器只能运行一个网站,也就是说只能跑个域名。但随着技术的发展,一个服务器上可以跑多个域名了,这样可以帮我们节省了成本。其实这里的服务器就叫作主机,早期一个主机对应一个站点。现在不同了,一个主机可以跑多个站点,所以就有了虚拟主机的概念。我们可以把一台服务器虚拟出多个主机出来,这样就实现了一台服务器上跑多个站点。

    既然服务器上可以有多个虚拟主机,每个虚拟主机都会定义一个域名(当然也可以定义多个),只要把这个域名解析指向到该台服务器,我们自然就可以访问这个站点了。说到这儿,你可能又有新的问题:什么叫解析指向?如果你会用浏览去访问一个站点,那下面笔者的解说肯定不难理解。咱们访问一个网站,需要在浏览器里面输人域名,然后就能访问到网站内容。这个过程是需要浏览器和远程服务器通信的,网站内容就是从服务器上读取到的。而这个服务器是由你访问的域名来决定在哪里的,而域名之所以能决定服务器在哪里,就是因为这个域名做了解析指向。域名解析服务器IP地址,这个行为是由DNS服务器来完成的。假如你访问的域名指向了你的服务器,而你又在这台服务器上做了配置标记了这个域名(接下来笔者会讲解如何标记),这样这个域名就能被正常访问。但如果没有在服务器上给这个域名做标记,
    会发生什么呢?按理说,没有做标记的域名是不合法的,是不能正常返回结果的。

    任何一个域名指向服务器,只要是没有对应的虚拟主机,就会由默认主机来处理,那这个默认虚拟主机长啥样,我们怎么去配置它?
    先进入主配置文件
    image.png
    把下面这一行的#去掉
    image.png
    然后进入虚拟主机配置文件
    image.png
    ServerAdmin指定管理员邮箱,这个没有什么实质作用。 Document Root为该虚拟主机站点的根目录,网站的程序就放在这个目录下面。 ServerName为网站的域名, ServerAlias为网站的第二域名, ServerAlias后面的域名可以写多个,用空格分隔,但 ServerName后面的域名不支持写多个。 ErrorLog为站点的错误日志, CustomLog为站点的访问日志。
    笔者配置如下:
    image.png
    重新加载一下配置
    image.png
    image.png

    首先我们要先创建一个docs
    image.png
    创建网页
    image.png
    index.html就是默认网站的主页
    内容为123.com,保存并且退出
    使用curl命令访问
    curl -xlocalhost:80 123.com
    显示123.com
    表示配置成功

    配置php文件也是可以的
    image.png
    配置内容如下
    image.png
    保存并且退出
    使用curl命令访问
    image.png