Apache虚拟主机配置·All

Posted 一起嗑瓜子吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache虚拟主机配置·All相关的知识,希望对你有一定的参考价值。

    这两天真心蛋疼,mac这个系统真的让我很无语了。很流畅,可是要进行安装啊修改文件啊啥的操作是总会出现各种奇奇怪怪的问题。吐血。。。

    之前想入手一门服务器语言,选择了php,学习到了搭建虚拟主机的部分,看视频的是感觉还挺简单的……可能人家用的windows吧……自己上手怎么都创建不出来,前前后后琢磨了好几个小时,今天总算成功了。其实这么多问题就一条代码的事,可是过程真的想打人。(mac和windows配置方法基本相同,蓝色为windows配置说明



基本概念

1、什么是虚拟主机?

    其实就是将一台服务器划分成多个虚拟服务器以满足在一台服务器上部署多个站点的要求。

2、什么是DNS服务器?

3、什么是hosts文件?

    hosts文件是用来保存域名/IP表的。

    在向DNS服务器发送请求之前,会先在本机的hosts文件中搜索是否有相对应的ip。(只能影响本机的DNS寻址)


Apache基本配置

1、监听端口

    找到/private/etc/apache2/httpd.conf (C:Apacheconfhttpd.conf取决于安装路径),利用文本编辑器打开(点击文件,单击鼠标右键,点管理员取得所有权,以下配置文件均需此操作),找到

Listen 80

这个就是apache默认的端口,可以修改这个端口,但是要注意改后的端口没有被占用。

2、网站根目录

    仍然是在httpd.conf文件中,搜索DocumenRoot,可以看到默认的文件路径是/Library/WebServer/Documents(${SRVROOT}/htdocs即C:Apachehtdocs),这一行下面有个<Directory……>,表示释放这个目录的权限,必须设置这个才能正常访问根目录。(注:“#”是注释符号,图中已经修改过根目录路径)

3、默认文档

    同样在httpd.conf中搜索DirectoryIndex,默认打开文件为index.html,这个建议不修改。

Apache虚拟主机配置·All

4、虚拟主机

    在配置这个之前,先在hosts文件中加入两个匹配本地IP(127.0.0.1)的域名,可以更加清楚的看到增加了多个虚拟主机。

路径:/private/etc/hosts (C:WindowsSystem32driversetchosts,如果没有这个文件,可以自己创建一个,方法(亲测有效):https://jingyan.baidu.com/article/359911f5a931bc57ff030646.html)

Apache虚拟主机配置·All

后两个是我新增的。全都指向本地IP,接下来要通过配置多个虚拟主机,达到两个域名访问两个不同的网站。

  • 在httpd.conf中,去掉下行的注释符号:(打开虚拟主机通道)

    #Include /private/etc/apache2/extra/httpd-vhosts.conf(Windows中有相应的路径)

  • 根据上面的路径打开httpd-vhosts.conf,注释掉两个文件自带的两个<VirtualHost>(这个是例子,告诉我们怎么加虚拟主机)

  • 复制两个上面的例子进行配置。如图:

Apache虚拟主机配置·All

    第一个是自己新加的网站根目录(放在了桌面),第二个是默认的根目录,两个位置放置了不同的html文件以体现虚拟主机是否配置成功。

    由于只是本地虚拟主机测试,去掉两行没用的。

    在中间加上目录权限释放的代码(httpd.conf中复制即可)。


问题及解决办法

    所有的这些设置完毕后,无论是通过域名还是ip访问网站都出现了Forbidd错误。说的是没有权限去访问这个网站。想了很多办法,过程无力吐槽,最终解决方案:

在终端运行代码即可:

chmod 755 Desktop

(释放系统桌面文件的权限,由于新修改的根目录在桌面,所以后面使用Desktop)


    现在,通过设置的两个域名可以访问到两个不同根目录的网站了,虚拟主机配置成功了!要注意,这样设置的域名只能在本机访问!局域网内的其他设备还是得通过路由器分配的ip访问!不过此时访问到的是新目录中的index.html!因为在主配置文件httpd.conf中使用的是新目录。


注意⚠️

  • 每次更改配置文件之后都要在终端重启apache服务:

    sudo apachectl restart

  • hosts文件修改后可以立刻生效,无需重启。

  • 目前发现每次更改新目录(桌面)的html文件后,都要在终端运行释权代码755,否则仍会出现Forbidden错误。因此在配置成功后还是恢复原状比较省事。(将虚拟主机通道代码前的#加上,并将根目录以及目录权限改回原来的即可)

以上是关于Apache虚拟主机配置·All的主要内容,如果未能解决你的问题,请参考以下文章

apache怎么配置localhost的虚拟主机

如何配置 Apache 的虚拟主机

Apache虚拟主机配置

Apache虚拟主机配置

配置apache虚拟主机

如何在Macbook上配置Apache虚拟主机