http://www.y-liang.cn/post-50.html
博客专区 > zhonghz 的博客 > 博客详情
http://www.y-liang.cn/post-50.html
zhonghz 发表于2年前
http://www.y-liang.cn/post-50.html
  • 发表于 2年前
  • 阅读 17
  • 收藏 0
  • 点赞 1
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 创建虚拟主机背景:平时我们开发网站时可能会有这样的需求:我们有一个主网站,地址是:www.y-liang.cn,这时候我们相给这个主网站开发一个论坛,地址是:bbs.y-liang.cn。当我们输入www.y-liang.cn时候,访问主站,输入bbs.y-liang.cn时访问论坛。如何实现呢?我们注意到,这里的y-liang.cn这部分是相同的,只有最前面那一部分不相同。其实我们买域名的时候也需要买y-liang.cn这部分就可以了。这时候我们可以通过配置虚拟主机来达到这个目的。

一、工具/原料

1.centos7操作系统

2.apache2.4.16

3.MySQL5.6

4.PHP5.6


二、方法/步骤

1.我们是要将/web/www/和/web/bbs目录作为我们的虚拟主机目录,就是说我们以后开发的项目都分别放在这两个目录下,所以我们要新建这两个目录。

2016-01-19_232342.png

2016-01-19_232700.png

2016-01-19_233722.png

2.首先编辑apache的配置文件httpd.conf(我之前把apache配置文件安装在/usr/local/apache2/etc):vim /usr/local/apache2/etc/httpd.conf

2016-01-19_221423.png


3.找到#Include etc//extra/httpd-vhosts.conf这一行(大概在464行),将前面的注释符“#”去掉,保存并且退出。

解释一下这句的意思:这句的意思是把Apache主目录(即apache安装目录)/usr/local/apache2/etc/extra/httpd-vhosts.conf这个文件引入进来,httpd-vhosts.conf这个文件正是虚拟主机的配置文件。

2016-01-19_222053.png

2016-01-19_222509.png


4.编辑虚拟主机配置文件httpd-vhosts.conf

2016-01-19_223258.png


5.看到配置文件,它里面也有已经有两个例子了,我们按照它的案例照葫芦画瓢来配置就行了。

解释一下每个选项的意思:

<VirtualHost *:80>:主机名称,为ip地址,如:192.168.0.21:80

ServerAdmin webmaster@dummy-host.example.com:邮箱地址

DocumentRoot "/usr/local/apache2//docs/dummy-host.example.com":网站跟目录,就相当于在windows下的我们安装wampserver时的www目录

ServerName dummy-host.example.com:这里是我们的域名,比如:www.y-liang.cn

ServerAlias www.dummy-host.example.com:这里是网站虚拟目录/服务器别名(关于虚拟目录,我们在后续会更新这个知识点,还请关注)

ErrorLog "logs/dummy-host.example.com-error_log":错误日志文件存放位置

CustomLog "logs/dummy-host.example.com-access_log" common:日志文件位置

2016-01-19_224228.png


6.虚拟将配置文件修改成我们所要的参数,修改将原来的那两个例子修改成如下:

<VirtualHost 192.168.0.21:80>
    DocumentRoot "/web/www"
    ServerName www.y-liang.com
</VirtualHost>


<VirtualHost 192.168.0.21:80>
    DocumentRoot "/web/bbs"
    ServerName bbs.y-liang.cn
</VirtualHost>

其他的参数我们可以不要,保存并退出。

2016-01-19_232841.png


6.重启apache服务器,使配置生效:/usr/local/apache2/bin/apachectl restart

2016-01-19_232455.png


7.现在我们来测试一下。分别在/web/www和/web/bbs目录下写两个测试文件index.php

在/web/www/index.php文件里写:<?php echo "这里是/web/www目录"; ?>

2016-01-19_233547.png

在/web/www/index.php文件里写:<?php echo "这里是/web/bbs目录"; ?>


2016-01-19_233512.png


8.好了,虚拟主机基本上配好了,但是我们如何通过域名访问我们的两个网站呢。很简单,在我们的windows系统下有一个hosts文件,里面就是专门配置ip地址和域名的对应(映射)关系的;编辑windows系统下的hosts(这个文件在C:\Windows\System32\drivers\etc目录下)文件,给我们要映射的ip添加两条记录。

192.168.0.21    www.y-liang.cn
192.168.0.21    bbs.y-liang.cn

2016-01-19_234207.png

这两条记录代表的意思是:当我们在浏览器输入www.y-liang.cn的时候,解析到的ip(即访问的ip)是192.168.0.21,但是我们刚刚配置虚拟主机的时候对应的虚拟主机目录是:/web/www目录,所以访问的是/web/www目录下的项目;当我们在浏览器输入bbs.y-liang.cn的时候,解析到的ip(即访问的ip)是192.168.0.21,但是我们刚刚配置虚拟主机的时候对应的虚拟主机目录是:/web/bbs目录,所以访问的是/web/bbs目录下的项目。

也许你还会问:当我们输入www.y-liang.cn的时候,访问的不是我的博客地址吗?这里解释一下:当我们在浏览器输入一个域名的时候,会首先在本地电脑的hosts文件里找有没有对应的ip,如果没有再去外网去找,比如我们现在这里,当我们输入www.y-liang.cn的时候,会首先去本地hosts文件里找,找到了对应的ip是192.168.0.21,所以会去访问192.168.0.21服务器下的项目,如果没找到,就访问外网ip的地址。


9.在浏览器里分别输入域名,访问我们的服务器,出现了以下报错信息。哈哈,这是因为我们刚刚只是配置好虚拟主机目录而已,还没给访问权限呢。

2016-01-19_235416.png


10.再次编辑/usr/local/apache2/etc/extra/httpd-vhosts.conf文件:vim /usr/local/apache2/etc/extra/httpd-vhosts.conf,

在ServerName www.y-liang.cn和ServerName bbs.y-liang.cn后面加入下面代码:

ServerName www.y-liang.cn后面:

<Directory "/web/www">
    Options None
    AllowOverride None
    Require all granted    #允许所有人访问
</Directory>

ServerName bbs.y-liang.cn后面:

<Directory "/web/bbs">
    Options None
    AllowOverride None
    Require all granted

</Directory>

保存并且退出。重启服务器。

2016-01-20_001537.png


11.这回再重新分别访问,这回就可以成功了。

2016-01-20_001740.png

2016-01-20_002141.png

12.好了,我们现在来总结一下刚刚lamp环境下要创建虚拟主机的步骤,有以下四步:

(1)确定好虚拟主机的目录,没有目录的话要新建。

(2)编辑apache配置文件httpd.conf,找到#Include etc//extra/httpd-vhosts.conf这一行(大概在464行),将前面的注释符“#”去掉

(3)编辑/usr/local/apache2/etc/extra/httpd-vhosts.conf文件,①配置虚拟主机目录②添加权限

(4)编辑windows系统C:\Windows\System32\drivers\etc\hosts文件,添加域名映射


到此为止,我们的lamp环境下创建虚拟主机已经完成了。


标签: 虚拟主机
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 2
码字总数 2554
×
zhonghz
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: