1:<IfDefine [!]parameter-name> ... </IfDefine>
而parameter-name是在服务启动时,通过httpd命令行的 -Dparameter 这样的形式指定的。
2:<IfModule [!]module-file|module-identifier> ... </IfModule>
module可以是模块的标识符或者是编译模块时的文件名。比如,rewrite_module就是一个模块标识符,而mod_rewrite.c则是编译模块时的文件名。如果模块包含多个源代码文件,您应当使用包含 STANDARD20_MODULE_STUFF 字符串的那个。
而STANDARD20_MODULE_STUFF请参考:《编写第一个Apache模块――mod_helloworld》
3:User/Group指令用于设置实际提供服务的子进程的用户/组。为了使用这个指令,服务器必须以root身份启动和初始化。如果你以非root身份启动服务器,子进程将不能够切换至非特权用户/组,并继续以启动服务器的原始用户身份运行。如果确实以root用户启动了服务器,那么父进程将仍然以root身份运行。
Unix-userid是下列值之一:
以下是引用片段:
1:一个用户名/组:通过用户名/组引用用户/组 2:"#"号后面跟一个用户/组编号 :通过用户/组编号引用用户/组 |
用于运行子进程的用户必须是一个没有特权的用户/组,这样才能保证子进程无权访问那些不想为外界所知的文件,同样的,该用户/组亦需没有执行那些不应当被外界执行的程序的权限。
进程的用户及层次关系可见:
以下是引用片段: [root@login yayu]# pstree -apu | grep http |-httpd,10914 -DSSL | |-httpd,8483,web -DSSL | |-httpd,8489,web -DSSL | |-httpd,8551,web -DSSL | |-httpd,8552,web -DSSL | |-httpd,8553,web -DSSL | |-httpd,8554,web -DSSL | |-grep,8558 http |
4:如果在<VirtualHost>外设置了一个ServerName,而一个请求不能与某个ServerName指令相匹配,它将会由第一个<VirtualHost>段所伺服。
5:ServerRoot指令设置了服务器所在的目录。一般来说它将包含conf/和logs/子目录。其它配置文件的相对路径即基于此目录 (比如Include或LoadModule)。而指定ServerRoot、DocumentRoot时不应包括最后的"/"。
6:Order指令控制默认的访问状态与Allow和Deny指令生效的顺序,变态的命令。
下面例子中,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域中的主机也允许访问是因为默认状态被改变到了允许。说白了就是控制Allow和Deny两个指定的顺序。