QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2071|回复: 41

cgi程序问题

[复制链接]
发表于 2003-3-4 19:09:33 | 显示全部楼层 |阅读模式
这是/etc/httpd/conf/httpd.conf里关于cgi的定义

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

AddHandler cgi-script .cgi

<Directory "/var/www/cgi-bin">
Options ExecCGI
AllowOverride None
Allow from from all
Order allow,deny
</Directory>


请问有什么问题吗???

我在该目录下放一个.cgi的文件,为什么老是出下面的错误:

Internal Server Error


The server encountered an internal error or misconfiguration and was unable to complete your request.


Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.


More information about this error may be available in the server error log.
发表于 2003-3-5 10:09:23 | 显示全部楼层
老大,163的webmaster的账户是你??厉害呀...

500错误。.服务器的错误..无法执行cgi程序的错误.你有无把cgi程序改为可执行呢??chmod +X...
回复

使用道具 举报

 楼主| 发表于 2003-3-5 10:57:59 | 显示全部楼层
cgi-bin应该是哪个组的呀???

这个错误不是没有权限的问题呀????
回复

使用道具 举报

发表于 2003-3-5 12:53:05 | 显示全部楼层
看看你的cgi程序的第一行是怎么写的??是不是#!/usr/lib/perl

然后用whereis perl看看perl在哪里,然后把上面的改了。。。
回复

使用道具 举报

 楼主| 发表于 2003-3-5 14:09:36 | 显示全部楼层
[root@lzw root]# whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz

我看了呀,就是这个目录!

[root@lzw root]# rpm -qi perl
Name        : perl                         Relocations: (not relocateable)
Version     : 5.8.0                             Vendor: Red Hat, Inc.
Release     : 55                            Build Date: 2002年09月02日 星期一 12时16分38秒
Install date: 2003年03月05日 星期三 17时51分03秒      Build Host: daffy.perf.redhat.com
Group       : Development/Languages         Source RPM: perl-5.8.0-55.src.rpm
Size        : 32905016                         License: Artistic
Signature   : DSA/SHA1, 2002年09月04日 星期三 05时33分34秒, Key ID 219180cddb42a60e
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : The Perl programming language.
Description :
Perl is a high-level programming language with roots in C, sed, awk
and shell scripting.  Perl is good at handling processes and files,
and is especially good at handling text.  Perl's hallmarks are
practicality and efficiency.  While it is used to do a lot of
different things, Perl's most common applications are system
administration utilities and web programming.  A large proportion of
the CGI scripts on the web are written in Perl.  You need the perl
package installed on your system so that your system can handle Perl
scripts.

Install this package if you want to program in Perl or enable your
system to handle Perl scripts.
回复

使用道具 举报

 楼主| 发表于 2003-3-7 18:36:37 | 显示全部楼层
我又查看了/var/log/httpd/error_log文件,错误信息是:

[Fri Mar 07 18:33:23 2003] [error] [client 10.71.128.97] Premature end of script headers: index.cgi

请问这是什么意思???(太早的script结束)????????????
回复

使用道具 举报

发表于 2003-3-7 19:17:53 | 显示全部楼层
看看index.cgi....

将#!/usr/bin/perl 改为 #!/usr/bin/perl -- 看看...
回复

使用道具 举报

 楼主| 发表于 2003-3-10 17:05:38 | 显示全部楼层
[quote:8724a6f121=""]看看index.cgi....

将#!/usr/bin/perl 改为 #!/usr/bin/perl -- 看看...[/quote]你这两个写的有什么区别吗??
回复

使用道具 举报

 楼主| 发表于 2003-3-12 15:01:44 | 显示全部楼层
到底能有人能解决不???
回复

使用道具 举报

发表于 2003-3-13 10:23:11 | 显示全部楼层
[quote:731ad16438="klmy"][quote:731ad16438=""]看看index.cgi....

将#!/usr/bin/perl 改为 #!/usr/bin/perl -- 看看...[/quote]你这两个写的有什么区别吗??[/quote]

当然有啦。。就是后面的--

我的程序加了这个就好用。。。
回复

使用道具 举报

 楼主| 发表于 2003-3-13 12:02:05 | 显示全部楼层
就加了两个减号????

加了还这个样子

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.0.40 Server at _default_ Port 80
回复

使用道具 举报

发表于 2003-3-13 12:18:52 | 显示全部楼层
是的。加了2个-

但是要与perl间空个隔。。

是#!/usr/bin/perl --

你有把你的程序chmod 0755吧。。
回复

使用道具 举报

 楼主| 发表于 2003-3-13 12:32:51 | 显示全部楼层
[root@lzw cgi-bin]# pwd
/var/www/cgi-bin
[root@lzw cgi-bin]# ls -sl
total 4
   4 -rwxr-xr-x    1 nobody   nobody         18  2月 13 12:06 test.cgi

test.cgi
#!/usr/bin/perl --
结果呢??

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Apache/2.0.40 Server at _default_ Port 80

呜呜....................
回复

使用道具 举报

发表于 2003-3-13 12:53:01 | 显示全部楼层
那建议你把对cgi-bin目录的修改的部分全部给他改回去。。在conf文件里的。。

用他默认的,然后把你想要放的路径改一下。。。。。。。。。

因为用他默认的,就可以执行cgi了。。根本无须再加什么addhandler。。。
回复

使用道具 举报

 楼主| 发表于 2003-3-13 13:08:51 | 显示全部楼层
首先谢谢你多次的回复!!

我的情况是这样的,我每次重新装系统,都没有该过任何值(除了语言,我改成GB2312和 用户和用户组我改成nobody,默认是apache),然后,/var/www/下的任何目录的用户和组都是root,但是,我的php程序可以运行!!

我把cgi-bin目录用户和组都改成 nobody,里面的cgi文件,我改成 755,都不行,怎么回事呀????

我的系统 RH8.0(APACHE系统自带)
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-17 07:25 , Processed in 0.082818 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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