LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 616|回复: 2

关于APACHE执行CGI程序的疑问

[复制链接]
发表于 2005-3-14 21:27:51 | 显示全部楼层 |阅读模式
1、CGI程序可以用C、PERL、PHP等语言写,那么用这些语言写的CGI程序,对APCHE来说,配置是否不同?
2、谁能给一个绝对正确的APCHE配置使其执行CGI程序?
3、麻烦哪位兄台发一个CGI程序给我,最最简单的那种即可,我要测试APACHE的CGI配置?

真的多谢了?
 楼主| 发表于 2005-3-15 09:06:32 | 显示全部楼层

经过我的测试,结论如下:

为了让APACHE支持CGI程序解析(不管是用C、PHP或者BASH等其他语言写的),必须设置如下:
1、Loadmodule cgi-module modules/mod-cgi.so(载入CGI解析模块)
2、Addhandler cgi-script .cgi(指定以cgi为后缀的文件作为cgi脚本处理)
3、<directory>段中添加options execcgi(添加CGI执行权限,否则客户端会提示没有权限)
4、chmod 755 *.cgi(更改cgi程序为执行权限)

当然,为了管理和习惯的问题,我们可以添加下面的命令:
ScriptAlias /cgi-bin/ "var/www/cgi-bin/"(注意,这并非必须的,仅仅是为了引用的方便而已,仅仅是一个目录的别名)

下面附上我测试用的两个程序:
第一个:使用BASH写的:
#!/bin/sh
echo Content-type:text/html
echo
echo '<html>'
echo '<head>'
echo '<title> hello,world</title>'
echo '</head>'
echo '<body>'
echo 'hello world'
echo '</body>'
echo '</html>'

第二个:使用perl写的:
#!/usr/bin/perl

print "Content-type:text/plain\n\n";
foreach $var (sort(keys(%ENV))) {
$val=$ENV{$var};
$val=~s|\n|\\n|g;
$val=~s|"|\\"|g;
print "${var}=\"${val}\"\n";
}
~

上面是我的一些体会,欢迎大家批评指正,多谢拉。
回复 支持 反对

使用道具 举报

发表于 2005-3-15 12:12:04 | 显示全部楼层
CGI是公关接口。用汇编写也行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表