Apache下配置虚拟主机总结

如果一台服务器想要挂多个网站,就需要为该服务器配置虚拟主机

配置方法有两种

    1.如果每个网站的IP地址是不同的那么就是基于IP的虚拟主机    

    2.如果每个网站的IP地址相同,访问的域名不同则为基于主机名

1.基于IP的虚拟主机步骤

Window下设置

步骤

1.创建两个网站目录:test1site1,testsite2里面各创建一个index.html 然后将网站放在apache网站htdocs目录下

2.创建虚拟IP:右击网上邻居---属性------选择IP4-----属性----IP地址不能自动获取,单击高级-----在IP地址中添加IP

    

3.设置系统hosts表添加IP地址和域名转换: hosts表位置:C:WindowsSystem32driversetc 


4.修改apache配置文件htdocs: 将Include conf/extra/httpd-vhosts.conf前面的#号去掉

5.修改httpd-vhosts.conf:

<VirtualHost 192.168.1.21:80>

    ServerAdmin www.test1.com

        DocumentRoot "D:/PHP/Apache/htdocs/testSite1

       <Directory "D:/PHP/Apache/htdocs/testSite1">//修改权限

         Options Indexes FollowSymLinks

         AllowOverride None

         Order allow,deny

         Allow from all

      </Directory>   

</VirtualHost>

<VirtualHost 192.168.1.22:80>

    ServerAdmin www.test2.com

    DocumentRoot "D:/PHP/Apache/htdocs/testSite2"

    <Directory "D:/PHP/Apache/htdocs/testSite2">

 Options Indexes FollowSymLinks

 AllowOverride None

 Order allow,deny

 Allow from all

    </Directory>   

</VirtualHost>

 

6.重启apache:输入www.test1.com测试

 

在linux下

linux下面创建IP地址的方法


Linux的hosts文件在 /etc/目录下 可以用VI编辑器编辑

其他的均相同 

 

2.基于主机名的虚拟主机步骤

步骤:

基于主机名不需要添加IP地址但仍需要添加IP地址与域名对应关系设置成:

修改apache配置文件htdocs: 将Include conf/extra/httpd-vhosts.conf前面的#号去掉

#必须指定服务器IP地址(和可能端口)来使主机接受请求,这里使用*代表所有地址

NameVirtualHost *:80

<VirtualHost *:80>

    #与全局的ServerName参数相同

    ServerName *

    #与全局的DocumentRoot参数相同

    DocumentRoot D:/PHP/Apache/docs/  

</VirtualHost>

<VirtualHost *:80>

    ServerAdmin www.test1.com

    DocumentRoot "D:/PHP/Apache/htdocs/testSite1"

    <Directory "D:/PHP/Apache/htdocs/testSite1">

 Options Indexes FollowSymLinks

 AllowOverride None

 Order allow,deny

 Allow from all

    </Directory>   

</VirtualHost>

<VirtualHost *:80>

    ServerAdmin www.test2.com

    DocumentRoot "D:/PHP/Apache/htdocs/testSite2"

    <Directory "D:/PHP/Apache/htdocs/testSite2">

 Options Indexes FollowSymLinks

 AllowOverride None

 Order allow,deny

 Allow from all

    </Directory>   

</VirtualHost>

还有一种方法通过同一IP地址 不同端口访问

如果我们想让testsite1用80端口,testsite2用81 端口大家还可以在htdocs 中添加listen 80  listen 81

然后在 httpd-vhosts.conf 设置

<VirtualHost 192.168.0.20:80>

    ServerAdmin www.test1.com

    DocumentRoot "D:/PHP/Apache/htdocs/testSite1"

    <Directory "D:/PHP/Apache/htdocs/testSite1">

 Options Indexes FollowSymLinks

 AllowOverride None

 Order allow,deny

 Allow from all

    </Directory>   

</VirtualHost>

<VirtualHost 192.168.0.20:81>

    ServerAdmin www.test2.com

    DocumentRoot "D:/PHP/Apache/htdocs/testSite2"

    <Directory "D:/PHP/Apache/htdocs/testSite2">

 Options Indexes FollowSymLinks

 AllowOverride None

 Order allow,deny

 Allow from all

    </Directory>   

</VirtualHost>

这样我们就可以用192.168.0.20:81访问testsite2了。 如果想在internet访问IP地址必须是静态的

原文地址:https://www.cnblogs.com/hemei/p/3710359.html