首先说两段废话:
1、什么是虚拟主机?
虚拟主机是指在一台服务器(硬件、软件)上运行多个网站。有两种方法在Apache服务器上设置虚拟主机。如果每个网站的IP地址不同,则虚拟主机是“基于IP”的;如果只有一个IP地址,可以是“基于主机名”的。
2、为什么要设置虚拟主机?
很显然,虚拟主机可以在一台服务器上运行多个网站,这样可以把多个网站移到一个服务器上,可以节约成本。
废话说完,现在介绍第一种方法:基于IP的虚拟主机设置:
我这里Apache按照上章配置,只是将Apache服务器的IP改为(192.168.0.104)。
另外,有三个网站,域名与IP的关系为:
www.whut1.com 192.168.0.11
www.whut2.com 192.168.0.12
www.whut3.com 192.168.0.13
步骤:
1、添加IP地址到eth0:
[root@localhost ~]# ifconfig eth0:1 192.168.0.11 up
[root@localhost ~]# ifconfig eth0:2 192.168.0.12 up
[root@localhost ~]# ifconfig eth0:3 192.168.0.13 up
2、设置域名对应的IP地址,解析IP地址:
因为这里我没有做DNS,我就在hosts文件添加。hosts文件也可以将域名映射为IP。在linux下,hosts文件在:/etc/目录下:
[root@localhost ~]# vi /etc/hosts
打开后,在空白处添加:
192.168.0.11 www.whut1.com
192.168.0.12 www.whut2.com
192.168.0.13 www.whut3.com
3、设置各个虚拟机存放网页的根目录:
[root@localhost ~]# mkdir /whut
[root@localhost ~]# mkdir /whut/htdocs1
[root@localhost ~]# mkdir /whut/htdocs2
[root@localhost ~]# mkdir /whut/htdocs3
上一节中,我将主配置文件放在了:/etc/httpd/目录下,打开http.conf:
[root@localhost ~]# vi /etc/httpd/httpd.conf
打开后,用“/Virtual hosts”找到Virtual hosts这个辅助配置文件,去掉“#Include /etc/httpd/extra/httpd-vhosts.conf
”,这个里面的“#”(其实也就是加载Virtual hosts这个辅助配置文件)
6、修改Virtual hosts这个辅助配置文件:
[root@localhost ~]# vi /etc/httpd/extra/httpd-vhosts.conf
进入这个目录后,先要注释掉:
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
# ServerName dummy-host.example.com
# ServerAlias www.dummy-host.example.com
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
#</VirtualHost>
为什么要注释掉呢,是因为如果不注释掉,重新启动apache的时候会出现警告。
注释掉之后,然后添加:
[root@localhost ~]# service httpd restart
8、在linux的浏览器中输入:
注意,这个时候在windows的浏览器里面输入域名是找不到的,只能输入IP地址找到。为什么呢?
请看下面9:
9、修改windows的hosts:
之所以在windows下面输入域名找不到,是因为windows的浏览器无法解析域名(没有DNS嘛)。这样就要修改windows下面的hosts,怎么修改呢?用文本编辑器打开“C:\windows\system32\drivers\ete\hosts”。然后在最下面添加:
192.168.0.11 www.whut1.com
192.168.0.12 www.whut2.com
192.168.0.13 www.whut3.com
1、什么是虚拟主机?
虚拟主机是指在一台服务器(硬件、软件)上运行多个网站。有两种方法在Apache服务器上设置虚拟主机。如果每个网站的IP地址不同,则虚拟主机是“基于IP”的;如果只有一个IP地址,可以是“基于主机名”的。
2、为什么要设置虚拟主机?
很显然,虚拟主机可以在一台服务器上运行多个网站,这样可以把多个网站移到一个服务器上,可以节约成本。
废话说完,现在介绍第一种方法:基于IP的虚拟主机设置:
我这里Apache按照上章配置,只是将Apache服务器的IP改为(192.168.0.104)。
另外,有三个网站,域名与IP的关系为:
www.whut1.com 192.168.0.11
www.whut2.com 192.168.0.12
www.whut3.com 192.168.0.13
步骤:
1、添加IP地址到eth0:
[root@localhost ~]# ifconfig eth0:1 192.168.0.11 up
[root@localhost ~]# ifconfig eth0:2 192.168.0.12 up
[root@localhost ~]# ifconfig eth0:3 192.168.0.13 up
2、设置域名对应的IP地址,解析IP地址:
因为这里我没有做DNS,我就在hosts文件添加。hosts文件也可以将域名映射为IP。在linux下,hosts文件在:/etc/目录下:
[root@localhost ~]# vi /etc/hosts
打开后,在空白处添加:
192.168.0.11 www.whut1.com
192.168.0.12 www.whut2.com
192.168.0.13 www.whut3.com
3、设置各个虚拟机存放网页的根目录:
[root@localhost ~]# mkdir /whut
[root@localhost ~]# mkdir /whut/htdocs1
[root@localhost ~]# mkdir /whut/htdocs2
[root@localhost ~]# mkdir /whut/htdocs3
4、分别在各个目录下写入测试文件:
在htdocs1目录下写入一个test1.php
<?php
phpinfo();
?>
在htdocs2目录下写入一个test2.php
<?php
phpinfo();
?>
在htdocs3目录下写入一个test3.php
<?php
phpinfo();
?>
5、修改主配置文件http.conf:
上一节中,我将主配置文件放在了:/etc/httpd/目录下,打开http.conf:
[root@localhost ~]# vi /etc/httpd/httpd.conf
打开后,用“/Virtual hosts”找到Virtual hosts这个辅助配置文件,去掉“#Include /etc/httpd/extra/httpd-vhosts.conf
”,这个里面的“#”(其实也就是加载Virtual hosts这个辅助配置文件)
6、修改Virtual hosts这个辅助配置文件:
[root@localhost ~]# vi /etc/httpd/extra/httpd-vhosts.conf
进入这个目录后,先要注释掉:
“NameVirtualHost *:80”(前面加#),
然后注释掉所有的:
#<VirtualHost *:80># ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
# ServerName dummy-host.example.com
# ServerAlias www.dummy-host.example.com
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
#</VirtualHost>
为什么要注释掉呢,是因为如果不注释掉,重新启动apache的时候会出现警告。
注释掉之后,然后添加:
<VirtualHost 192.168.0.11:80>
ServerName www.whut1.com
DocumentRoot /whut/htdocs1/
<Directory "/whut/htdocs1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.12:80>
ServerName www.whut2.com
DocumentRoot /whut/htdocs2/
<Directory "/whut/htdocs2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.0.13:80>
ServerName www.whut3.com
DocumentRoot /whut/htdocs3/
<Directory "/whut/htdocs3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
7、保存,然后重新启动Apache服务器:
[root@localhost ~]# service httpd restart
8、在linux的浏览器中输入:
http://www.whut1.com,出现下面的图片:
注意,这个时候在windows的浏览器里面输入域名是找不到的,只能输入IP地址找到。为什么呢?
请看下面9:
9、修改windows的hosts:
之所以在windows下面输入域名找不到,是因为windows的浏览器无法解析域名(没有DNS嘛)。这样就要修改windows下面的hosts,怎么修改呢?用文本编辑器打开“C:\windows\system32\drivers\ete\hosts”。然后在最下面添加:
192.168.0.11 www.whut1.com
192.168.0.12 www.whut2.com
192.168.0.13 www.whut3.com
这样也可以在windows下面打开噢:,看下图:
这样就配置成功了。下面一节将配置基于主机名的虚拟主机。。。