配置虚拟主机
一台服务器如果只能部署一个网站,那么非常浪费。所以需要通过其他手段实现一台主机部署多个网站。
什么是虚拟主机
●●●●●●
都是假滴,网络世界真真假假虚拟主机的分类
在apache可以将虚拟主机划分为两类
1.基于IP的虚拟主机:一台电脑上有多个IP,每个IP对应一个网站,电脑默认只有一个IP,因为通常只有一个网卡,但是有的服务器主机有多个网卡,每个网卡绑定一个IP地址。
2.基于域名的虚拟主机:一台电脑是只有一个IP,但是IP下可以制作多个网站,但是需要给每个网站不同的名字(虚拟主机名)。
搭建基于域名的虚拟主机
在Apache中搭建虚拟主机有两种方式
1.在主配置文件中搭建:需要手动开启虚拟主机(基于域名)
NameVirtualHost*:80
2.在专门的虚拟主机配置文件中配置
2.1在主配置文件中加载虚拟主机配置文件:虚拟主机配置文件已经开启了虚拟主机
NameVirtualHost
打开apache的conf文件夹下的httpd.conf,打开
Include conf/extra/http-vhost.conf
2.2虚拟主机配置文件中配置虚拟主机
①增加一个对应的站点文件夹:DocumentRoot
<VirtualHost *:80> DocumentRoot 'D:/discuz' </VirtualHost>
②增加主机的名字:文件夹的别名:ServerName
<VirtualHost *:80> DocumentRoot 'D:/discuz' ServerName:www.舒涵.fun </VirtualHost>
③增加域名解析DNS:hosts文件
在本机的host文件增加
127.0.0.1 www.舒涵.fun
④需要给我们设置的站点访问权限
<VirtualHost *:80>
DocumentRoot 'D:/discuz'
ServerName:www.舒涵.fun
<Directory 'D:/discuz'>
Order Deny,Allow //没有顺序关系,实际顺序有意义
//限定范围:按照顺序
Deny from all
Allow from all
</Directory>
</VirtualHost>
//该代码写于extra文件夹下的httpd-vhosts.conf中
⑤配置访问列表:当访问时一个目录时(没有指定要访问的文件)
<VirtualHost *:80>
DocumentRoot 'D:/discuz'
ServerName:www.舒涵.fun
<Directory 'D:/discuz'>
Order Deny,Allow //没有顺序关系,实际顺序有意义
//限定范围:按照顺序
Deny from all
Allow from all
</Directory>
</VirtualHost>
//该代码写于extra文件夹下的httpd-vhosts.conf中
#列表显示(开发环境)
Options Indexes FollowSymLinks//如过访问目录,那么列表显示所有文件
⑥当用于访问指定目录不指定文件时候,通常需要系统制定一个默认文件
<VirtualHost *:80>
DocumentRoot 'D:/discuz'
ServerName:www.舒涵.fun
<Directory 'D:/discuz'>
Order Deny,Allow //没有顺序关系,实际顺序有意义
//限定范围:按照顺序
Deny from all
Allow from all
</Directory>
</VirtualHost>
//该代码写于extra文件夹下的httpd-vhosts.conf中
#列表显示(开发环境)
Options Indexes FollowSymLinks//如过访问目录,那么列表显示所有文件
DirectoryIndex index.html index.htm index.php //默认访问文件
注意
如果是网站整个根目录语序访问,但是其中还有其他文件夹不允许访问,可以增加
<Directory '限制的文件夹>
Deny all
</Directory>
来实现权限限定
3.一旦启用虚拟主机配置文件,那么默认主机的主机地址localhost不再生效,如果想要生效,为localhost增加单独的虚拟主机
<VirtualHost *:80>
DocumentRoot 'D:/server/apache/htdocs'
ServerName localhost
<Directory 'D:/discuz'>
Order Deny,Allow //没有顺序关系,实际顺序有意义
//限定范围:按照顺序
Deny from all
Allow from all
</Directory>
</VirtualHost>
//该代码写于extra文件夹下的httpd-vhosts.conf中
#列表显示(开发环境)
Options Indexes FollowSymLinks//如过访问目录,那么列表显示所有文件
DirectoryIndex index.html index.htm index.php //默认访问文件