虚拟主机配置
端口监听:端口就是一个数字,目的是让一台电脑(对外只有一个IP)能够对外提供多项服务(多种功能)。
行业默认有如下常见的服务和端口对应:
web服务: 80
ftp服务: 21
邮件收取服务:110
邮件发送服务:25
mysql数据库服务:3306
一台电脑中,有6万多个端口,但通常一台服务器,一般只提供几个或10几个服务。
apache的端口监听设置,是指设定apache这个软件针对当前服务器的哪些端口提供web服务:
即apache是“服务生”,至于“外界”想要当前服务器提供什么服务,由外界提出“申请”(请求)。
通常,浏览器提出的都是web请求,但有些请求可能不在apache的服务范围内(端口不符)。
原始的配置:
我们通过localhost:80可以访问,但如果通过localhost:8080就不行。
我们在下一行加一句Listen 8080 保存重启apache,现在就可以通过8080端口访问了。
主机配置的关键项
主机,虚拟主机,web站点,是指一个可以通过浏览器并使用某个域名进行访问的“web应用”。
一个主机(站点),最核心的就两件事:
主机(站点)的名字:ServerName “主机名”
主机(站点)的实际文件夹位置:DocumentRoot “站点的实际完整路径”
apache的作用其实就是一个“转换”角色:将当前电脑中的某个文件夹,对外以某个域名(站点)的方式展现出来。换句话说:站点的本质就是一个文件夹。
系统hosts文件添加这个域名:
可以通过www.php110.com访问htdocs目录
但是当我们把目录改成其他目录,就会出现在这样的画面
没有权限访问该目录。
这里就需要设置文件访问权限。
这样就能成功访问了
默认网页设置
域名打开后默认的网页设置:
我们也可以将DirectoryIndex设置项放在一个单独的站点或单独的文件夹中,则只对该单独的站点或单独的文件夹起作用。
对单独文件夹起作用,也就是在该站点文件夹根目录新建一个.htaccess文件,该文件里写上
DirectoryIndex index.html index.php
然后再该站点设置了加一句AllowOverride All,这样就起作用了
目录别名设置Alias:
目录别名也叫虚拟目录
一个站点是一个文件夹(目录)。
该文件夹中自然可以有其下级文件夹(目录)。
实际存在的下级目录,可以按正常的文件夹访问层级关系进行访问,比如:
http://www.php110.com/根文件夹(也就是站点目录)
http://www.php110.com/day1/根文件夹中的day1目录
http://www.php110.com/day1/abc/根文件夹中的day1目录中的abc目录
如果这些都是实际存在的,则就可以以该方式访问。
然而:
在一个站点中,如果不存在某个文件夹(目录),我们可以通过配置项,来做到“对外”看起来却存在一样,比如:
http://www.php110.com/soft/假设站点中不存在soft目录
但我们可以让该地址“可访问”
这就是目录别名(虚拟目录)
然后重启apache,就可以访问soft目录了
多站点配置
看懂了上面的,多站点配置其实就很简单了
打开apache/conf/extra/httpd-vhosts.conf文件
拖到最下面:
依次进行各个站点的配置,当然也不要忘了去系统文件hosts里面添加该站点的域名。进行了多站点的配置,我们在主配置文件里配置的站点就被覆盖不起作用了。