随便聊聊加Apache多站点配置

教程使用PhpStudy在Apache服务器环境搭建本地站点,通过这篇文章你可以学到:

  • 修改hosts文件和域名访问系统的原理
  • Apache多站点的配置
  • MarkDown语法和各平台推荐软件
  • 一些零碎的网络相关知识

服务器

我记得看到过老师一篇文章,题目是当你在浏览器输入www.google.com回车后发生了什么?这里就是在谈论这个问题。首先什么是服务器?说白了就是一台电脑,但由于服务器需要提供服务给其他人,所以这机器尽量不能关机。怎么让它连续工作,那就得靠硬件配置和操作系统优化了。

几乎大所数服务器使用Intel架构至强处理器,为甚?多核心高缓存啊!少数使用IBM得power芯片这个不谈。服务器有自己的ECC内存条,总之就是比你我的DDR3,DDR4更稳定。根据CPU的选择,服务器有自己的主板,而不是什么B75,Z97,B150,H170这种民用东西。服务器系统主要是Windows,Linux和Unix三大阵营。Unix要钱我没玩过,Windows在服务器上有Server2003,2008,2012和2016,分别对应你们民用桌面版用的XP,WIN7,WIN8,WIN10,操作啥的稍微方便,但是安全性堪忧。总体上使用Linux服务器的公司居多。Linux和MacOS是Unix的儿子女儿,由于Linux内核开源,它又有很多变体出来了。但主要上分为两支:Fordora系列和Debian系列。具体就不说下去了,蛋疼。

我们必须知道每一台能访问外网的电脑都有一个ip地址,关于ip v4和ip v6具体也不说了,大概就是以前大家都有固定的ip v4地址,但是后来不够用了(32位二进制的缺陷,和千年虫问题一个道理),然后就来了个超大范围的ip v6,并且把ip v4静态地址换成动态地址,大家都在一个运营商的静态ip v4地址下使用动态ip v6地址(这个变化要记住,很重要,其原理关系到目前我们为什么不能搭建自己的服务器主机)。也就是说,我们都联网的时候,可以通过ip地址或者主机名称进行对话,目前的即时通讯软件就是这个原理,ip地址可以理解为主机名称的简写。我们的服务器一直开机,我怎么和它对话呢?

首先你要知道服务器的ip地址咯。由于服务器即使重启也不能让ip变化,否则就像你搬家了,亲戚找不到你。所以服务器需要静态ip地址,知道ip地址其实你们就能交流了。命令行ping命令用来测试你们能否联通,ftp,telnet等一系列命令就是程序员工具。但是服务器还得提供http上得各种服务啊,这就需要HTTP服务器了。

HTTP服务器,域名,DNS和hosts文件

上面我们知道了服务器只是一台可能有着特殊硬件、装着特殊系统的PC机,那么很多人不懂什么是HTTP服务器。其实HTTP服务也叫WEB服务器,甚至很多web相关职业者就喜欢叫它服务器,但实际上这只是一个软件!常见的Apache,Nginx,IIS,Tomcat,Jboss,Openresty这些都是WEB服务器。这家伙的作用就是通过http协议沟通外网的终端主机(就是你我的客户端电脑,由于http协议的安全性堪忧,目前越来越多的站点改用https协议,其实就是加了个SSL协议,80端口换403端口),我放一个html文件在WEB服务器指定的目录里面,理论上你就可以在浏览器中输入ip地址看到我这个页面了。但是你记得到几个ip地址呢?

为了方便记忆,域名和DNS这东西又出来了,这其实只是一种映射。我买一个域名叫erchoc.com,把它绑定到WEB服务器的指定目录,以后我输入erchoc.com就可以访问到我的网站了。并且我可以买十个域名,分别映射到服务器是个目录下,这就是多站点(关于顶级域名,二级域名和二级目录这种常识也不讲了)。然而实际上这是不够的,你的域名必须经过DNS服务器解析!我了个去,怎这么多服务器?这还不算多,学习PHP还要会自己配置FTP服务器,Git服务器,Samba服务器。。。。庆幸的是DNS解析有专门的公司在做这件事,也提供了免费解析的服务。很多时候你买域名租阿里云腾讯云云服务器什么虚拟主机(云服务器),这些都是人家帮你搞定了。另外必须吐槽的是,腾讯云所谓的云主机其实就是个虚拟机!

好了,原理基本结束。最后hosts文件来说一下。当你在浏览器输入www.google.com的时候,首先电脑的hosts文件会被扫一遍,然后去这个域名的DNS解析服务器那里看看google.com被解析到了哪个ip地址。然后客户端就在背后请求(简单理解就是缓存)那个ip地址上的HTTP服务器,HTTP服务器在本机把一些业务逻辑用后端代码搞定转换成html文件响应给客户端,然后你就看到大大的Google搜索框了。

其实关于HTTP的知识,叶老师的拓展阅读里面也有专门的讲解,点击阅读HTTP相关知识。

Apache多站点

以下操作只要你跟着做就能成功,有不同请截图提问。

首先启动apache,访问localhost或者127.0.0.1出现页面就下一步

用sublime打开hosts文件,在最后部分添加如图两行代码【host文件夹的位置请自行百度】

随便聊聊加Apache多站点配置_第1张图片
one.PNG

然后在apache项目目录下建立erchoc和Hbuilder两个文件夹,分别在里面放一个不同内容的html文件【这个项目目录不是WWW就是htdos,具体还要看你的一键环境包】

随便聊聊加Apache多站点配置_第2张图片
two.PNG

重启Apache后分别访问erchoc.apph和hbuilder,app,出现和localhost一样的页面就继续

进入Apache的配置目录,用sublime打开httpd.conf

随便聊聊加Apache多站点配置_第3张图片
three.PNG

如图,搜索vhost,删除前面的’#‘号保存【开启虚拟域名配置】

随便聊聊加Apache多站点配置_第4张图片
four.PNG

还是根据上面图的位置找到并用sublime打开httpd-vhost.conf,复制粘贴原有内容两遍【PhpStudy默认位置已经改成了httpd.conf同级目录的vhost.conf】

随便聊聊加Apache多站点配置_第5张图片
five.PNG

粘贴后修改两行,添加一行ServerName,如图所示

随便聊聊加Apache多站点配置_第6张图片
six.PNG

重启Apache后,浏览器访问erchoc.app和hbuilder.app,看到和localhost完全不同的三个页面即成功。实际山在真实项目开发中的多站点就是这样配置的,Nginx的配置更简单一些。另外,其实phpstudy和wamp的多站点配置是可以手动点点点操作的,由于linux命令行界面不行,所以特意写这篇文章

随便聊聊加Apache多站点配置_第7张图片
demo1.PNG
随便聊聊加Apache多站点配置_第8张图片
demo2.PNG

最后,文章使用MarkDown书写和排版,使用windows上的Sublime插件编写,有兴趣的同学可以自行了解。

  • 推荐Android使用小众轻巧的MarkdownEditors(可以在GitHub搜索并下载到源码)。

  • 推荐喜欢英文写作的同学IA Write,功能强大还能学习英语。

  • 喜欢社区和日志写作推荐使用这个平台。

  • Mac上建议使用Mou这款编辑器,同样支持类似Typora实时预览。

你可能感兴趣的:(随便聊聊加Apache多站点配置)