多站点虚拟主机的含义
多站点虚拟主机: 是指在一台物理意义上的电脑(服务器)中,配置多个网站站点,并都可以对外提供“web访问服务”,外界看起来就是有多个站点(或多个服务器)的样子!每个站点,也就是类似一个主机,这就是虚拟主机。
什么是虚拟主机
虚拟主机是指在网络服务器上分出一定的磁盘空间,用户可以租用此部分空间,以供用户放置站点及应用组件,提供必要的数据存放和传输功能。 (简而言之就是服务器)
配置多站点虚拟主机
配置多站点虚拟主机可以分两步:
1、在apache的主配置文件(httpd.conf) ,引入多站点的配置文件(虚拟主机配置文件),在 httpd.conf 搜索 “httpd-vhosts.conf”,打开注释:
Virtual hosts
Include /private/etc/apache2/extra/httpd-vhosts.conf
httpd.conf 中还有一个文件 “mod_vhost_alias.so” ,这个文件专门解决多次或者重复配置的站点,也就是可以写一个站点模板,里面都是自适应填充站点内容找到对应文件,这个可以单独去了解一下,这里我就不打开了,但是推荐使用这个。
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
2、在虚拟主机配置文件 (httpd-vhosts.conf)中,再挨个网站进行配置(每个网站一段配置),我们找到 httpd-vhosts.conf 文件打开,我们把里面的所有东西都注释掉,自己来配置。
PHP中域名配置、站点配置、主机别名设置、目录别名设置、以及多站点设置
检测apache配置是否出现错误:
例:F:\amp\apache\conf\httpd.conf -t (若配置过环境变量即不用输入完整路径了)
先做域名配置,在做站点,这样站点的名字已经经过域名解析
域名配置:
1、安装完成apache服务器后,默认站点的安装位置是htdocs;
2、例:修改域名为www.php34.com可以访问和localhost同样的站点,只需要以管理员的身份打开hosts文件(位置:window操作系统目录/system32/drivers/etc/hosts),格式如下:127.0.0.1 localhost
127.0.0.1 www.php34.com
虚拟主机配置:
apache默认的端口为80,可以增加一个端口号;
例:在apache的配置文件http.conf中,找到Listen 80,在其下可以增加一个Listen 8080
1、站点配置:站点的本质对内就是一个文件夹(在apache的http.conf配置文件中设置)
主机(站点)的名字:ServerName “主机名”
主机(站点)的实际文件夹位置:DocumentRoot “站点的实际完整路径”
例:打开apache的配置文件进行配置
增加一个站点的名字 ServerName www.php34.com
站点的实际文件夹位置 DocumentRoot "F:/phplearning" (自己定义的文件夹)
2、设置访问权限(添加该文件夹的访问权限)
在apache的文件夹下加一段话
<Directory "F:\php34learning">
下一行用于设定“可显示文件列表”(当无可显示网页的时候)
Options Indexes
用于设定权限的判断顺序:先拒绝,后允许
Order deny,allow
允许所有(这里没有设定拒绝)
Allow from all
3、设定默认网页,在apache的配置文件中设置
DirectoryIndex index.html test.php(可以写新建该站点下的文件,作为要用的默认网页)
访问www.php34.com/day1即可得到test.php页面
注:对于没有指定要访问明确网页的请求,会按顺序从前往后找这些文件,找到后就“返回”给用户。但是,如果最终都没有找到,此时,Options中的Indexes就发挥作用了:显示该文件夹中的所有文件(和文件夹)
3.2、我们也可以将DirectoryIndex设置项放在一个单独的站点或单独的文件夹中,则只对该单独的站点或单独的文件夹起作用。
把 DirectoryIndex test.php放到
<Directory "F:\php34learning">
下一行用于设定“可显示文件列表”(当无可显示网页的时候)
Options Indexes
用于设定权限的判断顺序:先拒绝,后允许
Order deny,allow
允许所有(这里没有设定拒绝)
Allow from all
中去:
<Directory "F:\php34learning">
下一行用于设定“可显示文件列表”(当无可显示网页的时候)
Options Indexes
用于设定权限的判断顺序:先拒绝,后允许
Order deny,allow
允许所有(这里没有设定拒绝)
Allow from all
DirectoryIndex test.php
访问www.php34.com/day1即可得到test.php页面,只对该站点有效
主机别名设置:
通常,我们在config配置文件中,使用Directory配置项,目的是用来控制文件夹的访问权限。
但我们也可以使用一个独立的文件来控制某文件夹的访问权限。
该文件名必须是: .htaccess
注意:
1),只有后缀和点号(无文件名部分)
2),该文件必须放在要被控制访问权限的文件夹中(不同的文件夹可以放不同的该文件)
3),其“上级文件夹”(通常是Directory设定中的文件夹)必须使用如下代码允许.htaccess发挥作用:
AllowOverride All
4),.htaccess文件中出现代码,几乎可以跟Directory设定中出现的代码一样。
5),如果.htaccess文件有效,则其设置会覆盖其上级设置。
6),此.htaccess文件修改后可以立即发挥作用,无需重启apache
例子:
1、建一个.htaccess文件,放在F:\phplearning\day1\文件夹下
.htaccess内容
DirectoryIndex aa.php
2、在apache的配置文件中加入AllowOverride All
<Directory "F:\php34learning">
Options Indexes
Order deny,allow
Allow from all
AllowOverride All
访问http://www.php34.com/day1将会出现默认的aa.php页面
修改.htaccess文件内容,不用重启apache即可运行
目录别名设置Alias
1、在一个站点中,如果不存在某个文件夹(目录),我们可以通过配置项,来做到“对外”看起来却存在一样,比如:
http://www.php34.com/soft/ 假设站点中不存在soft目录
但我们可以让该地址“可访问”
这就是目录别名(虚拟目录)
2、在apache的配置文件中,找到
在其中加入 Alias /soft "E:\apache22-mysql55-php53"
即:
Alias /soft "真实路径"
Alias /soft "E:\apache22-mysql55-php53"
3、在apache的配置文件中设置文件夹的访问权限
添加下列一段话
<Directory "E:\apache22-mysql55-php53">
Options Indexes
Order deny,allow
Allow from all
AllowOverride All
多站点配置:
1、首先在apache的配置文件http.conf中打开多站点配置文件
Virtual hosts
Include conf/extra/httpd-vhosts.conf
修改为:
Virtual hosts
Include conf/extra/httpd-vhosts.conf
2、打开apache->conf->extra->httpd-vhosts.conf文件,进行多站点配置的ip和端口,
形式如下:
NameVirtualHost IP:端口
*可以代表当前服务器的所有IP地址(通常也就一个)
例:NameVirtualHost *:80 (实际上默认就是设置好的)
3、在NameVirtualHost *:80下面加上下面一段文字,往后就依次一个一个站点配置就可以了,如下所示:
(注意:一旦进行多站点配置,则原来httpd.conf中的默认站点配置就失效了)
站点1:
下一行“*:80”要跟前面NameVirtualHost的设置一样
<VirtualHost *:80>
ServerName www.php34.com
设置主机别名,即用该别名也可以访问(前提是域名解析正确)
ServerAlias php34.com
DocumentRoot "F:\php34learning"
下一行的文件夹路径设置要跟上一行的DocumentRoot一样
<Directory "F:\php34learning">
Options Indexes
AllowOverride All 允许该文件夹中的.htaccess文件生效
Order allow,deny
allow from all
deny from 192.168.3.3
DirectoryIndex index.php test.php 设定默认网页
站点2:
下一行“*:80”要跟前面NameVirtualHost的设置一样
<VirtualHost *:80>
ServerName www.guagua.com
DocumentRoot "F:\amp"
下一行的文件夹路径设置要跟上一行的DocumentRoot一样
<Directory "F:\amp">
Options Indexes
Order allow,deny
allow from all
注:记得做域名配置
怎么做,才能使得配置输入localhost还原到初始页面?
在pache->conf->extra->httpd-vhosts.conf文件中加入以下代码
站点0:
下一行“*:80”要跟前面NameVirtualHost的设置一样
<VirtualHost *:80>
ServerName localhost
DocumentRoot "F:\amp\apache\htdocs"
下一行的文件夹路径设置要跟上一行的DocumentRoot一样
<Directory "F:\amp\apache\htdocs">
Options Indexes
AllowOverride All
Order allow,deny
allow from all
DirectoryIndex index.html index.php
More Information
互联网发布页面
Link: http://axisystem001.3vkj.vip/01/index.html