一个cgi程序(只是连接数据库)直接运行可以,被apache当cgi调用却老报500错误
代码如下:
- C/C++ code
EXEC SQL BEGIN DECLARE SECTION; char d_acDBNAME[ 64 + 1] = "calvin@127.0.0.1:5432" ; char d_acDBUSER[ 64 + 1 ] = "calvin" ; char d_acDBPASS[ 64 + 1 ] = "calvin" ; EXEC SQL END DECLARE SECTION; #define SQLCODE sqlca.sqlcode #define SQLSTATE sqlca.sqlstate int main() { EXEC SQL CONNECT TO :d_acDBNAME USER :d_acDBUSER IDENTIFIED BY :d_acDBPASS ; if( SQLCODE ) { printf("Content-type: text/html\r\n\r\n"); printf( "连接失败\r\n\r\n" ); } else { printf("Content-type: text/html\r\n\r\n"); printf( "连接成功\r\n\r\n" ); } return 0; }
makefile里这样写:
%.o : $(SQCPATH_SQC)\%.SQC
$(CC) -E -I$(CPATH_h) $(CFLAGS) -x c $(SQCPATH_SQC)\$*.SQC > $*.sqec
$(SQCP) $*.sqec
$(CC) -c -I$(CPATH_h) $(CFLAGS) $*.c -o $*.o
testdb.cgi : testdb.o
$(CC) -o $@ testdb.o -LD:/Work/PostgreSQL8.3/lib -lecpg
直接运行显示:
D:\Work\home\calvin\www\query_account\cgi-bin>testdb.cgi
Content-type: text/html
连接成功
在ie里被apache当cgi调用却返回500错误:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@netitanium.com 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日志error.log有:
[Mon Jun 16 23:04:19 2008] [error] [client 127.0.0.1] Premature end of script headers: testdb.cgi
高手帮忙解决,先谢谢啦
------解决方案--------------------
你生成的header不正确么
------解决方案--------------------
建议LZ把打印Http文件Header消息的那句话拿到最前面去。
EXEC SQL BEGIN DECLARE SECTION;
char d_acDBNAME[ 64 + 1] = "calvin@127.0.0.1:5432" ;
char d_acDBUSER[ 64 + 1 ] = "calvin" ;
char d_acDBPASS[ 64 + 1 ] = "calvin" ;
EXEC SQL END DECLARE SECTION;
#define SQLCODE sqlca.sqlcode
#define SQLSTATE sqlca.sqlstate
int main()
{
printf("Content-type: text/html\r\n\r\n");
EXEC SQL
CONNECT TO :d_acDBNAME
USER :d_acDBUSER
IDENTIFIED BY :d_acDBPASS ;
if( SQLCODE )
{
printf( "连接失败\r\n\r\n" );
}
else
{
printf( "连接成功\r\n\r\n" );
}
return 0;
}
我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html