虚拟主机配置
通常情况下,一个web服务代理一个网站,但是有时候我们需要用一台服务器代理多个网站。这个就是基于域名的虚拟主机技术。
我们可以直接在httpd.conf当中进行配置,也可以使用extra中的httpd-vhosts.conf配置,建议使用第二种方式。
首先要开启vhost.conf配置,
打开vhost.conf进行配置
为了使用基于域名的虚拟主机技术,我们需要指定服务器的ip和端口来接收服务。
这个通过NameVirtualHost 指令完成。
NameVirtualHost *:80
其中*表示所有的ip地址,如果是一个具体的ip,你可以写上这个ip,但建议使用*,80指的是端口。
接下来,要单独的配置具体的域名,通过 VirtualHost 指令段,其参数必须和NameVirtualHost
而且在指令段中必须包含ServerName 和 DocumentRoot
配置hosts文件,指定域名和DNS的对应关系。
通过浏览器访问某个域名的时候,需要进行域名的解析,首先找本地的hosts文件,如果能解析,就使用本地的配置,如果不能解析,则去外网进行解析。
现在去访问localhost,会怎么样?
会访问到在vhost文件中配置的第一个虚拟主机。
默认的虚拟主机,如果访问一个url,没有配置对应的虚拟主机,则会访问到vhost文件中配置的第一个虚拟主机。
再来配置一个
那如果要访问原来的localhost。
在hosts文件配置域名ip对应关系
☞ 配置细节
Ø 配置项一般不区分大小写,但参数通常是大小写敏感的
Ø 配置项要顶格写,否则无效
Ø #表示注释
Ø / 和 \ 的使用,路径的结尾不用添加斜线,建议使用/
Ø "" 的使用,地址要使用引号包含
Ø Apache 的每一次配置,包括后面的php.ini的配置,都需要重启apache才能生效
Ø 如果配置错误,则Apache不能正常启动
访问权限配置
在G盘中配置一个虚拟主机shop.cc,然后在浏览器中进行访问,
说明没有权限。
Apache有一个严格的权限控制。
通过directory指令来进行权限的配置。
默认的一个权限配置
第一种解决方案:在主配置文件中配置directory段,如下
第二种解决方案,在辅助文件中,对应的virtualhost 指令段中进行配置(推荐)
注意,这个配置要求更加严格,
将shop网站下的index.html更名为index1.html,出现如下状况:
默认的索引页,
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
在默认情况下,只索引index.html,如果要默认能够访问index.php,可以在此处添加
DirectoryIndex index.html index.php
索引列表
如果没有默认的索引页,它会将该文件夹下面的所有文件以列表的形式展示出来,但是需要有权限才行。
在实际的网站部署时,索引列表是应该 关闭的 。
FollowSymLinks 是指的符号链接,linux系统才有效。
关于Deny 和 Allow 的说明
[总则]:
影响最终判断结果的只有两点:
Ø order语句中allow、deny的先后顺序;
Ø allow、deny语句中各自包含的范围。
修改完配置后要保存好并重启Apache服务,配置才能生效;
开头字母不分大小写;
allow、deny语句不分先后顺序,谁先谁后不影响最终判断结果,但都会被判断到;
order语句中,“allow,deny”之间“有且只有”一个逗号(英文格式的),而且先后顺序很重要;
Apache有一条缺省规则,“order allow,deny”本身就默认了拒绝所有的意思,因为deny在allow的后面;同理,“order deny,allow”本身默认的是允许所有;
“order allow,deny”代表先判断allow语句再判断deny语句,反之亦然。
如果主文件和辅助文件都配置了权限,会怎么办?
以辅助文件为主
注意options这个指令,不会叠加,所以有时候我们会看到在indexes 有一个 + 或者 -的出现。
分布式配置文件
.htaccess
分布式配置文件,名字是固定的
配置分布式文件步骤:
1.开启分布式配置,默认情况下,这个是关闭的
将 AllowOverride None 改为 AllowOverride All 就开启了分布式配置
2.创建.htaccess
使用editplus编辑器或其他高级编辑器来创建
3.配置相应的权限
凡是写在directory中的权限配置都可以写在这个文件当中。
deny from All
分布式配置文件修改之后,不需要重启,立即生效。
和directory配置一样,所配置的权限在该目录及其子目录生效。
思考:使用.htaccess好不好?
优点:方便,给内容提供者一个自由配置权限的机会。
缺点:性能所损失(不小),只要开启分布式配置,那么它会在每个文件夹下搜索.htaccess。
一般不推荐使用分布式配置文件。
☞ 注意细节
Ø .htaccess 文件,比较特殊,可以使用 editplus 或者 ST2 等编辑器来创建。
Ø .htaccess 属于目录级别的控制,对应于 Directory 指令段中的配置。
Ø .htaccess 默认并未启用,可在主配置文件中使用allowoverride 指令加以配置。
Ø 配置修改.htaccess 文件,不需要重启,每次都会读取,性能有损失。