如果要为每个用户添加CGI支持就在Apache的配置文件access.conf中添加下列
配置:
<DirectoryMatch "/home/[a-z]+/public_html/cgi-bin">
Options ExecCGI
AddHandler cgi-script .cgi .pl
</DirectoryMatch>
注:将DirectoryMatch换成Directory亦可
在这种方法中,Apache服务www.xxx.com/~user/cgi-bin请求翻译成为了
/home/user/Public_html/cgi-bin/,并允许执行任何带有正确扩展名(.cgi
或.pl)的CGI程序。
使用ScriptAliasMatch命令
通过使用ScriptAliasMatch命令,也可以为每个用户添加CGI支持。例如:
ScriptAliasMatch ~([a-z]+)/cgi-bin/(.*)
/home/$1/public_html/cgi-bin/$2
这个命令将用户名与$1相匹配,其中$1与~([a-z]+)相等。将/cgi-bin/后面的
任何内容与$2相匹配,其中$2与(.*)相等。
这个设置也就实现www.xxx.com/~user/cgi-bin/xxx.cgi请求解释为:
/home/user/Public_html/cgi-bin/xxx.cgi
那么大家想一想,如果你想将这个请求解释为:
/home/httpd/public/apps/xxx.cgi
该如何设置呢?对,应该是:
ScriptAliasMatch ~([a-z]+)/cgi-bin/(.*) /home/httpd/public /apps/$2
3. Apache为CGI提供的环境变量
Apache服务器提供了许多环境变量可以用于CGI程序的编写,了解它们也一定有
助于写出充分利用Apache的CGI程序,所以在此也对此作一简单介绍。
服务器变量
服务器变量由Apache设置用来通知CGI程序有关Apache的情况。通过使
用这些变量,CGI程序能确定有关服务器的不同信息:Apache的版本,管理员的
E-Mail地址等。
SERVER_SOFTWARE
这个变量是WWW服务器Apache的版本号,它的值形如:Apache/Version,如
Apache/1.3;
GATEWAY_INTERFACE
这个变量的值是当前CGI规范的版本号,其值形如:CGI/1.1;
SERVER_ADMIN
如果在httpd.conf文件中有设置站点管理员的e-mail地址的话,这个变量就会
存放着这个e-mail地址;
DOCUMENT_ROOT
这个变量存放在是被访问的WWW站点的DocumentRoot命令指定的值。
客户请求变量
Apache提供的有关客户请求方的环境变量有许多,以下只是有选择性地介绍一
些最常见的。
SERVER_NAME
此变量可以告诉CGI程序它访问的是哪一个主机。这个值可以是IP地址也可以是
完整的主机名;
HTTP_ACCEPT
此变量被赋值为客户所能接受的MIME类型的列表,如:HTTP_ACCEPT=image/gif;
HTTP_ACCEPT_CHARSET
此变量被赋值为客户所能接受的字符集,如:
HTTP_ACCEPT_CHARASET=iso-8859-1.,*,utf-8;
HTTP_ACCEPT_LANGUAGE
此变量被赋值为客户所能接受的语言,如:HTTP_ACCEPT_LANGUAGE=en;
HTTP_ACCEPT_AGENT
这个变量指定发出请求的系统正在运行的浏览器类型和操作系统;
HTTP_PORT:服务端口;
REMOTE_HOST:客户端的IP地址或IP名称信息;
REMOTE_PORT:客户端的端口号;
4. 一点提示
若干年来,通过网关接口(CGI)已成为服务器端应用程序开发的事实标准。但
随着时间的推移,发现在沉重的CGI负担下许多WWW服务器系统的表现不尽人意。
这是因为CGI规范存在瓶颈问题:每当客户系统请求CGI应用程序时,WWW服务器
就必须启动新的CGI进程,直到完成任务后结束进程。这在负载不高时,会工作
正常。但是,在高负载时,繁多的进程将成为性能的瓶颈问题。
所以现在开始出现新的标准来弥补这一不足,其中FastCGI是很有前途的一种新
的开放式标准。
你可以在Apache中通过添加mod_fastcgi.c模块来支持FastCGI。
解读Apache日志
当你一步步地看到这里的时候,相信你的WWW站点已经建好,并且已经在
Internet上展现出来了。这时你可能就会关心谁造访过你的站点,或者想知道
你的Apache服务器现在的运行状态与性能如何。下面我们一起通过解读Apache
的日志来实现这个伟大的愿望。
一、盯着Apache服务器
Apache允许通过WWW监视服务器的配置信息与运行状态。
1.观看配置信息
如果你的Apache象缺省配置一样加入了mod_info模块的话,你就可以通过访问