Chinaunix

标题: CGI程序为什么不能访问sqlite3数据库 [打印本页]

作者: upczhaokai    时间: 2009-01-18 14:44
标题: CGI程序为什么不能访问sqlite3数据库
各位大侠 我在vmware redhat9.0做了个boa服务器,已经编译成功,并且CGI测试也成功,最近想使用sqlite3这个数据库,sqlite3也已经测试成功,现在想编写个CGI程序使用数据库出现了以下问题:
在本地运行成功的sqtest.cgi却无法在浏览器里运行,浏览器提示错误,页面里是502 bad gateway ,标题栏是404错误未找到url,boa  log下的错误是 unable to find LFLF,暂时还没有发现其他的错误
源程序为:
#include <stdio.h>
#include <sqlite3.h>
int main(void)
{
int sign=0;
sqlite3 *db;
printf("Content-Type:text/html\n\n";
printf("<title>response</title>");
sign=sqlite3_open("/var/www/cgi-bin/test1.db",&db);
if(sign)
{}
else
{
printf ("<p>successfully");
}
return 0;
}
很简单的程序,编译之前已经把路径export LD_LIBRARY_PATH=/usr/local/lib 添加到了/etc/profile文件的最后,然后编译使用的命令是 gcc -o sqtest.cgi sqtest.c -lsqlite3;我的sqlite3的共享库还有静态库都在/usr/local/lib下,已经将权限设置了777,我的boa的用户是nobody 组是nobody
曾经想过不使用动态库,只使用静态库,但是不知道怎么编译 各位大侠指点下,我实在不知道怎么办了?

[ 本帖最后由 upczhaokai 于 2009-1-18 14:46 编辑 ]
作者: upczhaokai    时间: 2009-02-12 10:28
问题已解决,
使用静态编译解决的,但是缺点非常明显 编译好的文件比较大,可能会影响到以后往板子上移植,不过总算解决了,
做法是使用gcc -o sqtest.cgi sqtest.c -lsqlite3 -lpthread -static 生成的CGI文件即可使用
作者: ynchnluiti    时间: 2009-02-12 13:31
原帖由 upczhaokai 于 2009-2-12 10:28 发表
问题已解决,
使用静态编译解决的,但是缺点非常明显 编译好的文件比较大,可能会影响到以后往板子上移植,不过总算解决了,
做法是使用gcc -o sqtest.cgi sqtest.c -lsqlite3 -lpthread -static 生成的CGI文 ...

是的,静态编译的比较大。可以用strip处理一下。

移植的时候可以换成动态库。
作者: upczhaokai    时间: 2009-02-27 09:23
请问楼上的大侠是否移植过boa到arm上,我现在正在做文件系统一直也没有再去看动态库的问题,boa好像找不到动态库,一直也没找到原因能否指教下




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2