【学习笔记】Apache之配置

1.配置文件

  • httpd.conf 主配置文件,定义apache的基本配置以及其他配置文件的引用
  • magic:mod_mime_magic模块的配置文件,当该模块无法分辨出正确的文件类型时,才由这个文件所定义的类型来提供服务
  • mime.types:用于定义MIME类型,通过这些定义使apache能通过文件扩展名来控制将什么类型的MIME发送给浏览器
  • extra:目录存放apache所需要引用的配置。通常有dav,vhost,ssl的配置
  • original:目录包含以上所有文件和目录的原始状态的配置文件的备份。

2.httpd.conf

主要以指令加参数或是容器封装指令与参数的形式书写。

该文件大致分为三部分:

1)主服务器部分,主要使用一些核心模块提供的指令来定义服务器的功能和参数

  • LoadModule ,
  • ServerName:定义apache默认主机名,
  • ServerRoot:用于定义服务器所在的目录
  • DocumentRoot:用于指定Apache所提供页面服务的根目录。,此路径需要使用绝对路径来表示

  不能使用相对路径。

  • ServerAdmin:用于定义当服务器出现错误后提示给客户端的管理员邮件地址。
  • ServerAlias 与Alias:用于实现映射目录功能,只是ServerAlias是将映射的目录识别为CGI脚本目录

  并将此目录中所有文件都作为CGI脚本来对待。而Alias则是只映射为一个普通的目录,并不会识别为

  CGI脚本:例如ScriptAlias /cgi_bin /srv/www/cgi_bin/ Alias /srv/www/html /home/www/html

  • User  Group用于定义运行APACHE服务器的账号和工作组
  • Listen 用来定义apache的监听端口。
  • LoadModule用于加载模块或是目标文件:例如LoadModule cgi_module/mod_cgi.so
  • ErrorDocument 例如:ErrorDocument 500 "unknown error"
  • Options指令决定在哪个目录中使用哪些服务器的特性:

a)None:不会起任何作用,

b)ExecCGI,允许当前目录下执行CGI脚本

C)Includes:允许使用SSI功能,开启服务器方包含(SSI)功能。

D)IncludesNOEXEC,禁止使用#exec cmd #exec cgi功能

E)Indexes:开启索引功能.指定目录下没有指定的索引文件,那么服务器自动返回一个请求目录内容的目录列表

F)FollowSymLinks:允许当前目录中使用符合连接,但是如果此参数在<location>容器中则会被忽略。

G)SymLinksIfOwnerMatch

H)All 默认参数

I)MultiViews:

 

2)容器环境部分:它以<容器名>开头,以</容器名>结尾对指令进行封装

在容器中的ServerName与DocumentRoot则具有定义虚拟主机的参数

  •  <IfModule>容器用于模块,它会首先判断模块是否载入,然后再决定是否进行处理。
  • <IfDefine>容器只有当条件判断为真时才会执行,而且它需要在httpd启动时加上特定的参数才能起作用。
  • <Directory>与<DirectoryMatch>容器,前者的作用就是让它所封装的指令在指定的目录以及它的子目录中起作用。
  • 这个目录必须是一个完整的路径。目录使用通配符,正则表达式需要加“~”。后者直接跟正则表达式,无须加上“~”
  • <Files>与<FilesMatch>容器只作用于文件
  • <location>与<LocationMatch>容器作用是对URL进行访问控制

3)服务器扩展,Include指令来加载其他的参数。

httpd_autoindex.conf,httpd-dav.conf,httpd-default.conf,httpd-mpm.conf等

 

3.htaccess文件 开启指令:AllowOverride

AllowOverride指令,参数:

All,使用所有能再.htaccess文件中使用的指令

AuthConfig:使用鉴权指令,例如AuthName,AuthType等

FileInfo:使用控制文件类型的指令

Indexes:使用目录索引指令

Options:使用控制目录功能指令

Limit:使用主机访问控制指令。

例如:在/srv/html/www/jonsk/目录下的.htaccess中写入下面的内容,jonsk目录可以支持

CGI。

Options +ExecCGI

AddHandler cgi-script cgi pl

使用.htaccess文件的好处:1,可以随时对目录功能和权限进行控制。2.在写入.htaccess文件后

无须重新启动apache就可以让配置生效。

缺点:1.服务器目录多式,性能急速下降。 2.安全,该文件可以修改和覆盖服务器的指令,

在<Directory>容器中使用AllowOveride指令开启,,在APACHE启动是只需读取一次,而不是在

文件请求时每次都读取,这样可以将性能的损失降到最低。

AccessFileName .config 替换.htaccess文件名。

 

4.映射用户到目录:

使用模块mod_userdir模块:

LoadModuld userdir_module modules/mod_userdir.so

UserDir public_html:将用户的请求映射到用户的public_html目录中。

UserDir public_html :    /home/jonsk/publick_html/index.html

UserDir /srv/html :   /srv/html/jonsk/index.html

UserDir /home/*/public_html/ /home/jonsk/public_html/index.html

UserDir http://hostname/user : http://hostname/user/jonsk/index.html

UserDir http://hostname/*/user : http://hostname/jonsk/jonsk/index.html

UserDir disable root sky

 

5.目录的索引:

mod_dir模块提供实现用户指定索引文件的功能:

DirectoryIndex index.html index.php

mod_autoindex模块提供自动索引

IndexOption指令,参数:DescriptionWidth,FancyIndexing,(复杂索引,开启后会显示文件名

文件大小,修改时间。FolderFirst等

AddDescription指令:是为索引中的文件或文件夹加上描述。

AddIcon与DefaultIcon指令,用于为指定的文件类型添加图标。

HeaderName,ReadmeName指令

IndexIgnore指令

IndexOrderDefault指令

 

posted @ 2015-01-26 16:36  sky.zhao  阅读(160)  评论(0编辑  收藏  举报