📄 ahttp.txt
字号:
配合 ResourceConfig 指令加以改变。
conf/access.conf
包含控制文件之存取的指令。档案名称可以配合 AccessConfig
指令加以改变。
无论如何,这些惯例并不需要完全遵奉。
此伺服器也会读取一个包含 MIME 文件型态的档案;这个档案名称藉由
TypesConfig 指令设定,而且有个 conf/mini.types 作为预设。
2.4 记录档
2.4.1 pid 档
伺服程式启动时,它把父程序 httpd 的程序码(process id)存往这个
log/httpd.pid 档案。这个档案名称可以配合 PidFile 指令加以改变
。这个程序码由管理者用来重新启动或终止伺服程式;一个 HUP 信号
会使伺服程式重新读取其配置档而一个 TERM 信号会使它终止。
如果程序不正常地死掉(或被杀掉),那麽必须杀掉 httpd 子程序。
2.4.2 错误记录
伺服器会将错误讯息记录到一个记录档去,预设为 log/error_log 。
档案名称可以藉由 ErrorLog 指令设定;可以为不同的虚拟主机设定不
同的错误记录。
2.4.3 传输记录
伺服器一般会将每个请求记录到一个传输档,预设为 logs/access_log
。档案名称可以藉由 TransferLog 指令设定;可以为不同的虚拟主机
设定不同的传输记录。
第三章
阿帕契核心部份(core)的特色
这些配置参数控制核心部份的阿帕契特色,而且是固定可以使用的。
3.1 AccessConfig 指令
语法: AccessConfig 档案名称
预设: AccessConfig conf/access.conf
用於: server config, virtual host
状态: 核心
此伺服器读取 ResourceConfig 档案之後将会继续读取这个档案以取得
更多指令。档案名称系相对於 ServerRoot 路径。此特色可以使用如下
的方式关闭:
AccessConfig /dev/null
原本这个档案只包含 节区;事实上它现在可以包含任何
可以用於伺服器配置的指令。
3.2 AccessFileName 指令
语法: AccessFileName 档案名称
预设: AccessFileName .htaccess
用於: server config, virtual host
状态: 核心
回传文件给客户端的时候,如果目录的存取控制档有启动,伺服器会在
到达这份文件的路径中的每个目录里以此名称搜寻存取控制档。例如:
AccessFileName .acl
在回传 /usr/local/web/index.html 这份文件前,此伺服器将会读取
/.acl, /usr/.acl, /usr/local/.acl 以及 /usr/local/web/.acl 以
取得指令,除非以如下的方式关闭它们:
AllowOverride None
3.3 AllowOverride 指令
语法: AllowOverride override override ...
预设: AllowOverride All
用於: directory
状态: 核心
伺服器找到 AccessFileName 指定的档案时会需要知道该档案所宣告的
哪些指令可以改变稍早的存取资讯。
Override 可以设为 None 在此情况下伺服器将不会读取该档,而设为
All 的话伺服器将会允许所有的指令,或是下列其中之一:
AuthConfig
允许验认指令的使用(AuthDBMGroupFile, AuthDBMUserFile,
AuthGroupFile, AuthName, AuthType, AuthUserFile and
require)
FileInfo
允许控制文件型态之指令的使用(AddEncoding, AddLanguage,
AddType, DefaultType and LanguagePriority)
Indexes
允许控制目录索引之指令的使用(AddDescription, AddIcon,
AddIconByEncoding, AddIconByType, DefaultIcon,
DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore,
IndexOptions and ReadmeName)
Limit
允许控制存取主机之指令的使用(allow, deny and order)
Options
允许控制特定目录特色之指令的使用(Options and XbitHack)
3.4 AuthName 指令
语法: AuthName 验认领域
用於: directory, .htaccess
需求: AuthConfig
状态: 核心
这个指令为某个目录设定验认区域的名称。这个区域会送给客户端所以
使用者知道要传送的使用者名称以及密码。它必须藉由 AuthType 以及
require 指令来完成,而且要有像 AuthUserFile 以及 AuthGroupFile
这些指令配合运作。
3.5 AuthType 指令
语法: AuthType 型态
用於: directory, .htaccess
需求: AuthConfig
状态: 核心
这个指令为某个目录选择使用这验认型态。目前只有 Basic 实作出来
。它必须藉由 AuthName 以及 require 指令来完成,而且还要有像是
AuthUserFile 以及 AuthGroupFile 这些指令配合运作。
3.6 BindAddress 指令
语法: BindAddress 伺服器位址
预设: BindAddress *
用於: server config
状态: 核心
一台 Unix 的 http 伺服器可以监听到该伺服机器每个 IP 位址的连线
或者只注意该伺服机器的一个位址。伺服器位址可以是:
。*
。一个 IP 位址
。一个完整的网际网路领域名称
如果此值是 * 的话,那麽该伺服器将会监听每一个 IP 位址的连线,
否则它将只监听指定的 IP 位址。
这个选项可以用来作为另一种支援虚拟主机的方式取代
节段。
3.7 DefaultType 指令
语法: DefaultType mime-型态
预设: DefaultType text/html
用於: server config, virtual host, directory, .htacess
需求: FileInfo
状态: 核心
有些时候伺服器会被要求提供某份文件,此文件不能藉由其 MIME 型态
对映来决定型态。
伺服器必须知会客户端文件所包含的型态(content-type),所以不知道
型态的时候它便使用 DefaultType 。例如:
DefaultType image/gif
对於包含许多没有 .gif 副档名的 gif 图形目录是合适的。
3.8 指令
语法: ...
用於: server config, virtual host
状态: 核心
以及 用来把一组指令包装起来,这些指令
将只应用到所指明的目录及其子目录上。任何可以用於 directory 的
指令都可以使用。Directory 是到某目录的完整路径,或是替代字元串
(widecard string) 。在替代字元串中 `?' 能够符合任何单一字元,
而 `*' 能够符合任何顺序的一些字元。例如:
Option Indexes FollowSymLinks
如果有多个 directory 节区能符合包含该文件的目录(或其父目录)
,那麽分布在 .htaccess 档案里的指令是以最短先符合的顺序加以应
用的,例如:
AllowOverride None
AllowOverride FileInfo
存取 /home/web/dir/doc.html 这份文件的步骤是:
。应用 AllowOverride None 指令(关掉 .htaccess 档案)。
。应用 AllowOverride FileInfo 指令(目录 /home/web )。
。应用任何在 /home/web/.htaccess 里面的 FileInfo 指令。
这个 directory 节段典型是用在 access.conf 档案里,但它们可以
出现在任何配置档里。 指令不能巢状使用,而且不能出现
在 节段里。
3.9 DocumentRoot 指令
语法: DocumentRoot 目录名称
预设: DocumentRoot /usr/local/etc/httpd/htdocs
用於: server config, virtual host
状态: 核心
这个指令设定 httpd 从这个目录提供档案服务。除非符合像是 Alias
这样的指令,伺服器把所要求的 URL 附加到文件根 (document root)
来组合到达文件的路径。例如:
DocumentRoot /usr/web
如此对於 http://www.my.host.com/index.html 档案的存取便会参照
到 /usr/web/index.html 。
3.10 ErrorDocument 指令
语法: ErrorDocument 错误代码 文件
用於: server config, virtual host
状态: 核心
有问题或错误发生的状况下,可以配置阿帕契做四种反应
1. 如同 NCSA httpd 1.3 的反应
2. 输出自定的(customized)讯息
3. 重导到某个本地的 URL 以处理该问题/错误
4. 重导到某个外部的 URL 以处理该问题/错误
2-4 是使用 ErrorDocument 来配置,其後跟随 HTTP 反应码以及讯息
或是 URL 。
ErrorDocument 500 /cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 401 http://www.foo.bar/subscription_info.html
ErrorDocument 403 "Sorry can't allow you acess today
参阅: 自定回应的文件。
3.11 ErrorLog 指令
语法: ErrorLog 档案名称
预设: ErrorLog logs/error_log
用於: server config, virtual host
状态: 核心
这个错误记录指令设定档案名称,伺服器将会把其遭遇的每个错误记录
到这个档案去。如果档案名称不是以 / 开始的话那麽它就会被假设为
相对於 ServerRoot 的路径。例如:
ErrorLog /dev/null
这会有效地关掉错误记录。
3.12 Group 指令
语法: Group unix-群组
预设: Group #-1
用於: server config
状态: 核心
这个 Group 指令设定伺服器回答要求时所处的群组。为了要能够使用
这个指令,必须以 root 身分起始执行独立的伺服器。 Unix-群组可以
是这些其中之一:
群组的名称
藉由名称参照所给的群组。
# 跟随著群组号码
藉由号码参照某个群组。
建议你特别设立一个群组来执行这个伺服器。某些管理者使用 nobody
这个使用者,但是这并非永远可行或合适的。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -