这是我第一次将自己 的学习笔记整理成博客,希望大家多提提意见,一起交流,一起学习
如果一台服务器想要挂多个网站,就需要为该服务器配置虚拟主机
配置方法有两种:
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:\Windows\System32\drivers\etc
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地址必须是静态的