场景一:一台LINUX服务器,安装APACHE,建设一个WEB网站,WEB网站的主目录在/var/webroot。默认页面是index.html。WEB服务器侦听端口为80

步骤:

1、准备WEB站点的文件系统的目录

(1)创建目录

[root@localhost ~]# mkdir /var/webroot

[root@localhost ~]# ls -ld /var/webroot

drwxr-xr-x 2 root root 4096 06-01 23:05 /var/webroot

[root@localhost ~]#

注:至少将目录/var/webroot给others有只读权限,apache服务器在访问文件系统目录时,是以apache帐号进行访问的。

(2)创建测试页面

[root@localhost ~]# cd /var/webroot

[root@localhost webroot]# vi index.html

[root@localhost webroot]# cat index.html

APACHE的简单应用一_应用

2、安装apache

可以由rpm 来安装

也可以使用yum 安装

httpd-2.2.3-31.el5.i386

httpd-devel-2.2.3-31.el5.i386

httpd-manual-2.2.3-31.el5.i386

3、配置apache

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf

(1)查看是不是侦听80

Listen 80 #有这一条,就是表示在服务器的所有网卡上都要侦听80端口;或在某一块网卡侦听,就要写成:

Listen <ip>:80

(2)设置服务器主目录

DocumentRoot "/var/webroot" #将主目录改为/var/webroot

(3)设置主目录的访问属性

<Directory "/var/webroot">

#设置主目录的WEB访问属性

# Possible values for the Options directive are "None", "All",

# or any combination of:

# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

#

# Note that "MultiViews" must be named *explicitly* --- "Options All"

# doesn't give it to you.

#

# The Options directive is both complicated and important. Please see

# http://httpd.apache.org/docs/2.2/mod/core.html#options

# for more information.

#

Options Indexes FollowSymLinks MultiViews

#options指令控制在目录中将使用哪些服务器特性。

#这些特性有All Indexes FollowSymLinks MultiViews #SymLinksifOwenerMacth ExecCGI等,或是none

#All 是指除了MultiView之外的所有特性都接受

#Indexes :如查一个请求到来访问到目录,没有默认的页面,那么就对这个目录进行一个文件列表,生成一个格式化目录列表。

#MultiViews:允许使用多重视图

#FollowSymLinks:允许在此目录中使用符号连接。

#ExecCGI:允许使用CGI脚本。

注:这一次,我们按照默认的就可以足够我们访问了。

#

# AllowOverride controls what directives may be placed in .htaccess files.

# It can be "All", "None", or any combination of the keywords:

# Options FileInfo AuthConfig Limit

#

AllowOverride None

#这个指令是决定存在于.htaccess文件指令类型 ,这个文件是实现对目录的访问控制 ,具体见指令参考,这个场景中,按默认

#

# Controls who can get stuff from this server.

#

Order allow,deny

Allow from all

#这一组命令是用来控制,那些用户能通过HTTP访问这个目录。order先指明检查的顺序。

详见下面

</Directory>

(4)设置目录的默认文件

DirectoryIndex index.html

(5)启动APACHE

[root@localhost ~]# service httpd start

访问:

注意: 字符集中UTF8

APACHE的简单应用一_职场_02

屏幕剪辑的捕获时间: 2010/6/1 23:58

指令参考:

Options 指令

说明

配置在特定目录中可以使用哪些特性

语法

Options [+|-]option [[+|-]option] ...

默认值

Options All

作用域

server config, virtual host, directory, .htaccess

覆盖项

Options

状态

核心(C)

模块

core

Options指令控制了在特定目录中将使用哪些服务器特性。

option可以为None ,在这种情况下,将不启用任何额外特性。或设置为以下选项中的一个或多个:

All

除MultiViews之外的所有特性。这是默认设置。

ExecCGI

允许使用mod_cgi执行CGI脚本。

FollowSymLinks

服务器允许在此目录中使用符号连接。

注意:即使服务器会使用符号连接,但它不会改变用于匹配<Directory>段的路径名。

注意:如果此配置位于<Location>配置段中,则此设置会被忽略。

Includes

允许使用mod_include提供的服务器端包含。

IncludesNOEXEC

允许服务器端包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以从ScriptAlias目录使用"#include virtual"虚拟CGI脚本。

Indexes

如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表。

MultiViews

允许使用mod_negotiation提供内容协商的"多重视图"(MultiViews)。

SymLinksIfOwnerMatch

服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。

注意

如果此配置出现在<Location>配置段中,此选项将被忽略。

一般来说,如果一个目录被多次设置了Options ,则最特殊的一个会被完全接受(其它的被忽略),而各个可选项的设定彼此并不融合(参见配置段的合并)。然而,如果所有作用于Options指令的可选项前都加有"+"或"-"符号,此可选项将被合并。所有前面加有"+"号的可选项将强制覆盖当前的可选项设置,而所有前面有"-"号的可选项将强制从当前可选项设置中去除。

比如,没有任何"+"或"-"符号:

<Directory /web/docs>

Options Indexes FollowSymLinks

</Directory>

<Directory /web/docs/spec>

Options Includes

</Directory>

那么只有将Includes设置到/web/docs/spec目录上。然而如果第二个Options指令使用了"+"和"-"符号:

<Directory /web/docs>

Options Indexes FollowSymLinks

</Directory>

<Directory /web/docs/spec>

Options +Includes -Indexes

</Directory>

那么就会有FollowSymLinks和Includes设置到/web/docs/spec目录上。

注意

使用 -IncludesNOEXEC 或 -Includes 时,不论前面如何设置,都会完全禁用服务器端包含。

没有其它设置时,默认设置为 All 。

AllowOverride 指令

说明

确定允许存在于.htaccess文件中的指令类型

语法

AllowOverride All|None|directive-type [directive-type] ...

默认值

AllowOverride All

作用域

directory

状态

核心(C)

模块

core

当服务器发现一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置指令。

仅允许存在于<Directory>配置段

AllowOverride仅在不包含正则表达式的<Directory>配置段中才是有效的。在<Location>, <DirectoryMatch>, <Files>配置段中都是无效的。

如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。

当此指令设置为 All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。

directive-type可以是下列各组指令之一:

AuthConfig

允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。

FileInfo

允许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。

Indexes

允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。

Limit

允许使用控制主机访问的指令(Allow, Deny, Order)。

Options[=Option,...]

允许使用控制指定目录功能的指令(OptionsXBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项。

例如以下指令只允许在.htaccess中使用AuthConfig和Indexes组的指令:

AllowOverride AuthConfig Indexes

不在这两组中的指令将会导致服务器产生一个内部错误。

Order 指令

说明

控制默认的访问状态与Allow和Deny指令生效的顺序

语法

Order ordering

默认值

Order Deny,Allow

作用域

directory, .htaccess

覆盖项

Limit

状态

基本(B)

模块

mod_authz_host

Order指令控制默认的访问状态与AllowDeny指令生效的顺序。Ordering取值范围是以下几种范例之一:

Deny,Allow

Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。

Allow,Deny

Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。

Mutual-failure

只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果,不赞成使用。

关键字只能用逗号分隔;它们之间不能有空格。注意在所有情况下每个AllowDeny指令语句都将被评估。

在下面的例子中,apache.org域中所有主机都允许访问,而其他任何主机的访问都将被拒绝。

Order Deny,Allow

Deny from all

Allow from apache.org

下面例子中,apache.org域中所有主机,除了foo.apache.org子域包含的主机被拒绝以外,其他都允许访问。而所有不在apache.org域中的主机都不允许访问,因为默认状态是拒绝对服务器的访问。

Order Allow,Deny

Allow from apache.org

Deny from foo.apache.org

另一方面,如果上个例子中的Order指令改变为"Deny,Allow",将允许所有主机的访问。这是因为,不管配置文件中指令的实际顺序如何,"Allow from apache.org"指令会最后被评估到并覆盖之前的"Deny from foo.apache.org"。所有不在apache.org域中的主机也允许访问是因为默认状态被改变到了允许。

即使没有伴随AllowDeny指令,一个Order指令的存在也会影响到服务器上某一个部分的访问,这是由于它对默认访问状态的影响。例如:

<Directory /www>

Order Allow,Deny

</Directory>

这样将会禁止所有对/www目录的访问,因为默认状态将被设置为拒绝。

Order指令只在服务器配置的每个段内部控制访问指令的处理。这暗示着,例如,一个在<Location>段中出现的AllowDeny指令总是将会在一个<Directory>段或者.htaccess文件中出现的AllowDeny指令之后被评估,而不管Order指令如何设置。要了解配置段落合并的详细信息,参见配置段文档

DirectoryIndex 指令

说明

当客户端请求一个目录时寻找的资源列表

语法

DirectoryIndex local-url [local-url] ...

默认值

DirectoryIndex index.html

作用域

server config, virtual host, directory, .htaccess

覆盖项

Indexes

状态

基本(B)

模块

mod_dir

DirectoryIndex指令设置了当客户端在请求的目录名的末尾刻意添加一个"/"以表示请求该目录的索引时,服务器需要寻找的资源列表。Local-url(%已解码的)是一个相对于被请求目录的文档的URL(通常是那个目录中的一个文件)。可以指定多个URL,服务器将返回最先找到的那一个。若一个也没有找到,并且那个目录设置了Indexes选项,服务器将会自动产生一个那个目录中的资源列表。

示例

DirectoryIndex index.html

上例配置指示对 http://myserver/docs/ 的请求返回 http://myserver/docs/index.html(若存在),或返回该目录下所有资源的列表

注意,指定的文档不一定必须位于被请求的目录下,也可以指定一个绝对URL来指向其他位置:

DirectoryIndex index.html index.txt /cgi-bin/index.pl

这样的设置将导致在index.html或index.txt都不存在的情况下执行CGI脚本/cgi-bin/index.pl 。