CGI问题:500 Internal Server Error

错误提示:html

[error] (13)Permission denied: exec of /usr/local/apache2/cgi-bin/test-cgi failed
[error] [client xxx.xxx.xxx.xxx] Premature end of script headers: 
解决办法:

(1)关闭SElinux以及防火墙linux

        防火墙可经过setup命令设置关闭apache

        SELinux关闭:修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,而后重启。服务器

(2)app

缘由是从客户端上传到服务器上的可执行文件没有执行权限。
-rwxr----- 1 root   root     160 04-28 10:04 filename
解决办法:chmod 755 filename
==============修改事后===============
-rwxr-xr-x 1 root   root     112 04-29 12:29 junk.pl
-rwxr-xr-x 1 root   root   31900 03-04 15:49 libAVAPIs.so
-rwxr-xr-x 1 root   root   72876 03-04 15:49 libIOTCAPIs.so
-rwxr-xr-x 1 root   root   18056 03-04 15:49 libRDTAPIs.so
-rwxr----- 1 root   root     160 04-28 10:04 Makefile
-rw-r--r-- 1 c7user c7user   294 2005-02-04 printenv
-rwxr-xr-x 1 root   root    8295 04-28 11:07 SetPass
-rw-r--r-- 1 root   root    4389 04-28 13:53 setpass.c
-rwxr-xr-x 1 c7user c7user   779 2005-02-04 test-cgi

查找错误二error while loading shared libraries并解决

在错误日志中查看,提示以下:ui

[Mon Apr 29 20:00:41 2013] [error] [client 222.201.146.139] /usr/local/apache2/cgi-bin/SetPass: error while loading shared libraries: libIOTCAPIs.so: cannot open shared object file: No such file or directory
spa

这个问题有两个解决办法:.net

error while loading shared libraries: xxx.so.x"错误的缘由和解决办法 
unix

请记住,在把***.so上传到/usr/local/lib后,记得修改so文件的执行权限(chmod 755 filename)日志

查找错误三Premature end of script headers并解决

在调用cgi后首先输出:Content-type:text/html\n\n

调用cgi带有参数

http://121.14.119.122:8090/cgi-bin/test-cgi?we+wwerq+1234

输出以下:

CGI/1.0 test script report:
argc is 3. argv is we wwerq 1234.
SERVER_SOFTWARE = Apache/2.0.64 (Unix)
SERVER_NAME = 121.14.119.122
GATEWAY_INTERFACE = CGI/1.1
SERVER_PROTOCOL = HTTP/1.1
SERVER_PORT = 8090
REQUEST_METHOD = GET
HTTP_ACCEPT = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
PATH_INFO = 
PATH_TRANSLATED = 
SCRIPT_NAME = /cgi-bin/test-cgi
QUERY_STRING = we+wwerq+1234
REMOTE_HOST =
REMOTE_ADDR = 222.201.146.139
REMOTE_USER =
AUTH_TYPE =
CONTENT_TYPE =
CONTENT_LENGTH =