加入收藏
您当前的位置:首页 > Apache

用apache在本机配置多个基于ip的虚拟主机

时间:2014-06-20 20:48:01  来源:  作者:

在做网站的时候总会遇到这样一个麻烦:如果同时在做2个或两个以上的网站,但是,默认的apache的配置是只有一个网站,这样的话,切换起来很不方便。其实这个问题很好解决,就是把本机的apache配置成为虚拟服务器。但是,网上大多数教程的是教用 apache如何配置基于域名的虚拟主机的,而在本机调试网站的时候,一般都是用本地ip(127.0.0.1 或 localhost)直接访问,没有用到域名。所以得把apache配置成为基于ip地址的虚拟主机才行。

首先,补充一点理论知识:(如果熟悉网络的话可以略过)
网络课告诉我们,所有以127打头的ip地址都应该指向本机,并不只有127.0.0.1,这点大家可以试试。
这样一来,也就是说本机有足够多的ip地址供你来开设虚拟主机了。

然后,进入正式的配置工作,下面是apache的httpd.conf里相关配置部分:
1、Listen部分,必须直接指定端口,不指定ip地址,配置应写为:
Listen 80
2、不用像基于域名的虚拟主机那样写“NameVirtualHost”。

3、虚拟主机配置段:
<VirtualHost 127.0.0.1:80>
    DocumentRoot /path/to/your/first/virtual/host
    ServerName 127.0.0.1:80
</VirtualHost>
<VirtualHost 127.0.0.2:80>
    DocumentRoot /path/to/your/second/virtual/host
    ServerName 127.0.0.2:80
</VirtualHost>
...

4、然后相应的配置好各个目录属性,下面是一个目录属性的典型配置:
<Directory "/path/to/your/first/virtual/host">
    Options Indexes FollowSymLinks Multiviews
    AllowOverride All
    Order Allow,Deny
    Allow from all
</Directory>

重启apache2以后,你的虚拟主机就配置好了,以后就可以通过127.0.0.1和127.0.0.2进入不同的站点了。

1.基于相同IP不同Port的虚拟主机
1)vi /etc/httpd/conf/httpd.conf  (建议使用nano或gedit等编辑器,下同)
2)将Listen字段改为
Listen 80
Listen 8080
(以上设置表示使用80以及8080端口,好像8888端口有冲突)
3)更改虚拟主机部分为:
<VirtualHost 192.168.0.1:80>
    DocumentRoot /var/www/html/website1
</VirtualHost>
<VirtualHost 192.168.0.1:8080>
    DocumentRoot /var/www/html/website2
</VirtualHost>
4)保存以上设置
5)创建目录以及页面文件:
#mkdir –p /var/www/html/website1
#mkdir –p /var/www/html/website2
#cd /var/www/html/website1
#cat >index.html <<EOF
>website1
>EOF
#cd /var/www/html/website2
#cat >index.html <<EOF
>website2
>EOF
(注:在/etc/httpd/conf/httpd.conf中有DirectoryIndex index.html index.html.var,表示只读index.html,而不读index.htm,切记)
6)service httpd restart
完成以上设置后,可以通过以下方式访问:
1)打开浏览器
2)输入http://192.168.0.1:80以及http://192.168.0.1:8080

2.基于相同Port不同IP的虚拟主机
1)不同IP地址的配置:
#cd /etc/sysconfig/network-scripts
#cp ifcfg-eth0 ifcfg-eth0:1
#vi ifcfg-eth0:1
将eth0:1更改为:
DEVICE=eth0:1
ONBOOT=YES
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
2)service network restart
3)vi /etc/httpd/conf/httpd.conf
4)更改虚拟主机部分为:
<VirtualHost 192.168.0.1:80>
    DocumentRoot /var/www/html/website1
</VirtualHost>
<VirtualHost 192.168.0.2:80>
    DocumentRoot /var/www/html/website2
</VirtualHost>
5)创建目录以及页面文件:
#mkdir –p /var/www/html/website1
#mkdir –p /var/www/html/website2
#cd /var/www/html/website1
#cat >index.html <<EOF
>website1
>EOF
#cd /var/www/html/website2
#cat >index.html <<EOF
>website2
>EOF
完成以上设置后,可以通过以下方式访问:
1)打开浏览器
2)输入http://192.168.0.1:80以及http://192.168.0.2:80

3.基于域名的虚拟主机的访问
1)vi /etc/http/conf/httpd.conf
2)更改虚拟主机部分为:
NameVirtualHost 192.168.0.1
<VirtualHost www1.example.com>
    DocumentRoot /var/www/html/website1
    ServerName www1.example.com
</VirtualHost>
<VirtualHost www2.example.com>
    DocumentRoot /var/www/html/website2
    ServerName www2.example.com
</VirtualHost>
(注:以上设置中NameVirtualHost不可以省略)
3)创建目录以及页面文件:
#mkdir –p /var/www/html/website1
#mkdir –p /var/www/html/website2
#cd /var/www/html/website1
#cat >index.html <<EOF
>website1
>EOF
#cd /var/www/html/website2
#cat >index.html <<EOF
>website2
>EOF
4)完成以上设置后,可以通过以下方式访问:
1)打开浏览器
2)输入http://www1.example.com 以及 http://www2.example.com

注意:如果虚拟主机的目录不在“/var/www”下面,则需要关闭SELINUX,方法如下:
把/etc/selinux/config 中的
SELINUX=enforcing
改成
SELINUX=permissive
然后重启。
如果想立即生效,则执行:
# setenforce 0
命令就可以了
 

特别说明:本站部分资源来源网络,仅供学习与参考,请勿用于商业用途。转载请注明来自:www.phpld.cn PHPL中文网
上一篇:apache 2.2.2 + PHP5.1.4 不能运行的解决办法
下一篇:很抱歉没有了
推荐资讯
DedeCMS将data目录迁移到web根目录之外
DedeCMS将data目录迁移
相关信息
    无相关信息
头条信息
热门信息