php虚拟主机配置、访问权限配置、分布式文件配置

虚拟主机配置


通常情况下,一个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语句中allowdeny的先后顺序;

Ø allowdeny语句中各自包含的范围。 

 

 修改完配置后要保存好并重启Apache服务,配置才能生效;

 开头字母不分大小写;

 allowdeny语句不分先后顺序,谁先谁后不影响最终判断结果,但都会被判断到;

 order语句中,“allow,deny”之间“有且只有”一个逗号(英文格式的),而且先后顺序很重要;

 Apache有一条缺省规则,“order allow,deny”本身就默认了拒绝所有的意思,因为denyallow的后面;同理,“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 文件,不需要重启,每次都会读取,性能有损失。


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值