欢迎光临
我们一直在努力

APACHE(3)-PHP教程,系统相关

建站超值云服务器,限时71元/月

3.21 port 指令

语法: port 数字
预设: port 80
用於: server config
状态: 核心

这个 port 指令设定服务器监听的网路端口号。数字是 0 到 65535 的
一个数目;某些端口号(特别是低於 1024 的)保留给特殊的协定。参阅
/etc/services 里定义的一些端口的列表;标准 http 协定使用 80 端口。

port 80 是 unixs 的一个特别端口。所有低於 1024 的端口号都是保留给
系统使用的,例如,一般使用者(non-root)不能使用它们;取而代之的
是他们可以使用较高的端口号。

要使用 80 端口你必须以 root 帐号启动服务器。在连接到该端口後,接受
请求之前,阿帕奇将会切换为藉由 user 指令所设定权限较低的使用者
身分。

如果你不能使用 80 端口,选择任何其它没有使用到的端口。非 root 使用
者必须选择高於 1023 的端口号,像是 8000 。

安全: 如果你是以 root 启动服务器,确定不要把 user 设为 root 。
如果你以 root 身分处理连线的话,你的站台可能会暴露在攻击下。

3.22 require 指令

语法: require 项目名称 项目 项目 …
用於: directory, .htaccess
需求: authconfig
状态: 核心

这个指令选择经过验认可以存取目录的使用者。允许使用的语法是:

。require user 使用者辨识码 使用者辨识码 …
只有注明的使用者能存取该目录。

。require group 群组名称 群组名称 …
只有在注明群组里的使用者能存取该目录。

。require valid-user
所有合法的使用者都可以存取该目录。

如果 require 出现在 节段里,那麽它会限制所注明的存取
方式,否则它会限制所有的存取方式。例如:

authtype basic
authname somedomain
authuserfile /web/users
authgroupfile /web/group
limit <get post>
require group admin

require 必须藉由 authname 以及 authtype 这些指令,以及配合像是
authuserfile 以及 authgroupfile 指令(用来定义使用者与群组)
以便正确运作。

3.23 resourceconfig 指令

语法: resourceconfig 文件名称
预设: resourceconfig conf/srm.conf
用於: server config, virtual host
状态: 核心

此服务器读取 httpd.conf 文件之後将会继续读取这个文件以取得更多
指令。文件名称系相对於 serverroot 路径。此特色可以使用如下的方
式关闭:

resourceconfig /dev/null

原本这个文件包含大部分指令,除了服务器配置及 <directory> 节区
以外;事实上它现在可以包含任何可以用於服务器配置的指令。

3.24 serveradmin 指令

语法: serveradmin 电子邮件地址
用於: server config, virtual host
状态: 核心

serveradmin 设定电子邮件地址,服务器回传任何错误讯息给客户端时
会包含这个地址。

设定一个像这样的地址可能会有用,例如

serveradmin www-admin@foo.bar.com

因为使用者并不会永远知道他们是跟在哪台服务器打交道!

3.25 servername 指令

语法: servername 完整的领域名称
用於: server config, virtual host
状态: 核心

这个 servername 指令设定服务器的主机名称;这只有在建立重导 url
的时候使用。如果没有指定它,那麽服务器会试图从其 ip 位址来决定
;然而这个方法可能不能信赖,或者无法回传适当的主机名称。例如:

servername www.wibble.com

如果正式(canonical) 名称是 monster.wibble.com 它还能够使用上述
的名称。

3.26 serverroot 指令

语法: serverroot 目录名称
预设: serverroot /usr/local/etc/httpd
用於: server config
状态: 核心

这个 serverroot 指令设定服务器所在的目录。它典型会包含有子目录
conf/ 以及 logs/ 。其它配置档的相对路径是相对於这个路径。

3.27 servertype 指令

语法: servertype 型态
预设: servertype standalone
用於: server config
状态: 核心

这个 servertype 指令设定系统如何执行这个服务器。型态可以是其中
之一:

inetd
服务器将由系统程序 inetd 执行;启动服务器使用的命令加在
/etc/inetd.conf 文件里。

standalone
服务器将会作为服务程序(daemon)执行;启动服务器使用的命令
加在系统启动指令稿里(/etc/rc.local or /etc/rc.d/…)。

inetd 在这两个选项里是较少使用的。因为接收到每个 http 连线就会
重头开始执行一份新的服务器拷贝;连线结束後,这支程序就会结束。
每次连线要付出的代价很高,但是因为安全上的理由,某些管理者喜欢
这个选项。

standalone 是 servertype 使用最普遍的设定,因为它更为有效率。
服务器启动一次,而且服务所有的连线。如果你想要执行阿帕奇来服务
一个忙碌的站台, standalone 大概将会是你唯一的选择。

安全: 如果你对安全性有偏执,以 inetd 模式来执行它。两种方式都
不能绝对确保安全性,但是大部分人使用 standalone 用得很高兴时,
inetd 大概比较不会遭到攻击。

3.28 startservers 指令

语法: startservers 数字
预设: startservers 5
用於: server config
状态: 核心

这个 startservers 指令设定启动时建立的子服务程序数量。因为程序
的数量是依据负载动态控制的,通常没有什麽理由得要调整这个参数。

参阅 minspareservers 以及 maxspareservers 。

3.29 timeout 指令

语法: timeout 数字
预设: timeout 1200
用於: server config
状态: 核心

timeout 这个指令设定服务器接收一个请求以及完成一个请求最长的等
待时间,以秒为单位。所以如果它花费比 timeout 更多秒来让客户端
传送请求或接收回应,服务器将会中断该连线。因此 timeout 限制一
次可以传输的最大资料量;对於大文件,以及慢速网路传输时间可能会
很久。

3.30 user 指令

语法: user 使用者辨识码
预设: user #-1
用於: server config
状态: 核心

user 这个指令设定服务器用来回答请求的使用者辨识码。为了要能够
使用这个指令,必须以 root 身分起始执行独立的服务器。unix使用者
辨识码可以是其中之一:

一个使用者名称
藉由名称参照给定的使用者。

# 跟随著使用者编号
藉由使用这个编号参照他们。

这个使用者应该不能有存取外界所不能看到的文件的权限,而且与此类
似,这个使用者应该不能执行对 httpd 要求而言没有意义的程序码。
建议你特别为执行这个服务器设立新的使用者以及群组。某些管理者使
用 nobody 但是这并非永远可行或合适的。

注意: 如果你以非 root 使用者的身分启动这个服务器,它将无法切换
到权限较低的使用者,并且取而代之的是它将会继续以原使用者身份来
执行。如果你真的是以 root 启动这个服务器,那麽这个父程序一般仍
然以 root 身分在执行。

安全: 不要把 user(or group) 设为 root 除非你确实知道你在做什麽
以及会有怎麽样的危险。

3.31 <virtualhost> 指令

语法: <virtualhost 位址>…</virtualhost>
用於: 服务器配置
位於: 核心部份

<virtualhost> 以及 </virtualhost> 用来把一组指令包装起来,这些
指令将只会应用到某个特定的虚拟主机上。任何可用於虚拟主机的指令
都可以使用。当服务器接收到某个特定主机上的文件请求的时候,它会
使用包装在 <virtualhost> 节段里的配置指令。位址可以是

。虚拟主机的 ip 位址
。虚拟主机的 ip 位址的完整领域名称。

□例:

<virtualhost host.foo.com>
serveradmin webmaster@host.foo.com
documentroot /www/docs/host.foo.com
servername host.foo.com
errorlog logs/host.foo.com-error_log
transferlog logs/host.foo.com-access_log
</virtualhost>

目前,每段 virtualhost 必须符合服务器不同的 ip 位址,所以服务
机器必须配置成能够接收多个位址的 ip 封包。如果该机器并没有多个
网路界面,那麽这可以配合 ifconfig alias 指令来完成(如果你的作
业系统支援这个功能),或是配合像是 vif(for sunos(tm)4.1.x)一类
的核心修补档。

第四章

阿帕奇标准模组

4.1 mod_access 模组

这个模组包含在 mod_access.c 文件里,而且依预设会编译进去。它提
供以客户端主机名称或 ip 位址为基础的存取控制。

4.1.1 allow

语法: allow from 主机 主机 …
用於: directory, .htaccess
需求: limit
状态: 基础
模组: mod_access

allow 这个指令影响能够存取某特定目录的主机;典型是用在
节区里。主机可以是下列之一:

all
允许所有的主机存取。

(部份)领域名称
允许名称为此字串或以此字串结束的主机存取。

完整的 ip 位址
允许该 ip 位址的主机存取。

部份的 ip 位址
某个 ip 位址第一到第三个位元组,作为子网路限制之用。

□例:

allow from .ncsa.uiuc.edu

允许在指定领域里的所有主机进行存取。

注意这比较的是整个的内容;所以 bar.edu 不会符合 foobar.edu 。

参阅 deny 以及 order 指令。

4.1.2 deny

语法: deny from 主机 主机 …
用於: directory, .htaccess
需求: limit
状态: 基础
模组: mod_access

deny 这个指令影响能够存取某特定目录的主机;典型是用在
节区里。主机可以是下列之一:

all
拒绝所有的主机存取

(部份)的领域名称
拒绝名称为此字串或以此字串结束的主机存取。

完整的 ip 位址
拒绝该 ip 位址的主机存取。

部份的 ip 位址
某个 ip 位址第一到第三个位元组,作为子网路限制之用。

□例:

deny from 16

拒绝在指定网路里的所有主机进行存取。

注意这比较的是整个的内容;所以 bar.edu 不会符合 foobar.edu 。

参阅 allow 以及 order 指令。

4.1.3 order

语法: order 次序
预设: order deny, allow
用於: directory, .htaccess
需求: limit
状态: 基础
模组: mod_access

order 这个指令控制评估 allow 以及 deny 指令的次序。次序可以是
其中之一:

deny,allow
在 allow 指令之前评估 deny 指令

allow,deny
在 deny 指令之前评估 allow 指令

mutual-failue
只有那些出现在 allow 列表里而且没有出现在 deny 列表里的
主机可以进行存取。

□例:

order deny,allow deny from all allow from .ncsa.uiuc.edu

允许在 ncsa.uiuc.edu 这个领域里的主机进行存取;拒绝所有其它的
主机存取。

4.2 mod_alias 模组

这个 mod_alias 模组包含在 mod_alias.c 文件里,而且依预设会编
译进去。它提供的功能是对映主机文件系统的不同部份到文件树去,及
url 转向。

4.2.1 alias

语法: alias url-路径 目录-文件名称
用於: server config, virtual host
状态: 基础
模组: mod_alias

alias 这个指令使文件可以存放在 documentroot 之外的本地文件系统
里。以 url-路径 开始的 urls 将会被对映到以 目录-文件名称 开始
的本地文件去。例如:

alais /image /ftp/pub/image

对於 http://myserver/images/foo.gif 的这个请求会使得服务器回传
文件 /ftp/pub/image/foo.gif 。

参阅 scriptalias 指令。

4.2.2 redirect

语法: redirect url-路径 url
用於: server config, virtual host
状态: 基础
模组: mod_alias

redirect 这个指令对映旧的 url 到新的去。新的 urls 会被回传给
客户端以便配合新的位址再次尝试撷取。url-路径 (%-decoded)路径;
任何以这个路径作为开始的文件请求都将回传一个错误并重导到以 url
作为开始的新(%-encoded) url 去。例如:

redirect /service http://foo2.bar.com/service

如果客户端请求 http://myserver/service/foo.txt 则会被告知应该
撷取 http://foo2.bar.com/service/foo.txt 来取代。

注意: 无论配置档里的次序如何,redirect 指令优先於 alias 以及
scriptalias 指令。

4.2.3 scriptalias

语法: scriptalias url-路径 目录-文件名称
用於: server config, virtual host
状态: 基础
模组: mod_alias

scriptalias 这个指令除了还另外把目标目录标记为包含 cgi 指令稿
以外其功能与 alias 指令相同,以 url-路径 作为开始的 urls 将会
被对映到以 目录-文件名称 作为开始的指令稿去。例如:

scriptalias /cgi-bin/ /web/cgi-bin/

对於 http://myserver/images/foo 的这个请求会使服务器去执行指令
稿 /web/cgi-bin/foo 。

4.3 mod_asis 模组

这个模组包含在 mod_asis.c 文件里,而且依预设会编译进去。它是为
.asis 文件而提供的。任何 mime 型态为 httpd/send-as-is 的文件都
将由这个模组处理。

4.3.1 目的

允许定义文件的型态,如此阿帕奇可以不加 http 标头(headers) 传送
它们。

这可以用来从服务器传送任何型态的资料,包括重导(redirects) 以及
其它特殊的 http 回应,而不需要 cgi-script 或是 nph script 。

4.3.2 用法

在服务器配置档里,定义一个称为 httpd/send-as-is 的 mime 型态,
例如

addtype httpd/send-as-is asia

这定义 .asis 副文件名是新的 httpd/send-as-is mime 型态。任何副
文件名是 .asis 的文件内容由阿帕奇送出给客户端时几乎不会有任何的
改变。客户端将需要 http 标头来联系,所以别忘记它们。 a status:
仍然需要标头;此资料应该是 3位数字的 http 回应码,跟随一段文字
讯息。

这里有个示例档,其内容是告诉客户端有个文件被重定向送出。

status: 302 now where did i leave that url
location: http://xyz.abc.com/foo/bar.html
content-type: text/html

<head>
<title>lame execuses`rus</title>
</head>
<body>
<h1>freds exceptionally wonderful page has moved to
<a href="http://xyz.abc.com/foo/bar.html">joes</a>site
</h1>
</body>

注意: 服务器一定会在送给客户端的资料里加上 date: 以及 server:
标头,所以不应该包含在这个文件里。服务器不会加上 last-modified
标头,所以应该要才对。

4.4 mod_auth 模组

这个模组包含在 mod_auth.c 文件里,而且依预设会编译进来。它提供
的功能是使用文字文件来执行使用者验认。

4.4.1 authgroupfile

语法: authgroupfile 文件名称
用於: directory, .htaccess
需求: authconfig
状态: 基础
模组: mod_auth

authgroupfile 这个指令设定一个文本文件的名称,这个文本文件包含用来
执行使用者验认的使用者群组列表。文件名称是群组文件的绝对路径。

这个群组文件的每一行包括一个群组名称,跟随一个冒号,其後是藉由
空白隔开的使用者名称。例如:

mygroup: bob joe anne

注意搜寻很大的群组文件是很没有效率的;应该用 authdbmgroupfile
来取代它。

安全: 确定这个 authgroupfile 储放在服务器的文件树之外;不要把
它放在它保护的目录里。否则,客户端将能够下载这个 authgrpupfile
文件。

参阅 authname, authtype 以及 authuserfile 。

4.4.2 authuserfile

语法: authuserfile 文件名称
用於: directory, .htaccess
需求: authconfig
状态: 基础
模组: mod_auth

这个 authuserfile 指令设定一个文本文件的名称,这个文本文件包含用来
执行使用者验认的使用者以及密码列表。文件名称是到群组文件的绝对
路径。

这个使用者文件的每一行包括一个使用者名称,跟随一个冒号,其後是
藉由 crypt() 加密过的密码。多个相同使用者的情况没有定义。

注意搜寻很大的使用者文件是很没有效率的;应该用 authdbmuserfile
来取代它。

安全: 确定这个 authuserfile 储放在服务器的文件树之外;不要把它
放在它所保护的目录里。否则,客户端将能够下载这个 authuserfile
文件。

参阅 authname, authtype 以及 authgroupfile 。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » APACHE(3)-PHP教程,系统相关
分享到: 更多 (0)

相关推荐

  • 暂无文章