1. route.txt 配置cgi路径
route uri=/cgi-bin dir=/web handler=cgi
2.交叉编译生成cgi
goahead 源码路径下 ./test/cgitest.c 是c写 的cgi文件
arm-linux-gcc cgitest.c -o c.cgi
3.交叉编译后的cgi存放路径
/web/cgi-bin/c.cgi
出现错误及解决方法:
版本:goahead v-3.1.2
1.CGI process file is not executeable
出现这个问题只需要要将cgi的目标程序的执行权限变为可执行即可。
2. failed to spawn CGI task
出现这个问题的原因:
goahead在执行的过程中需要创建临时文件,默认的目录下不能创建,需要进行修改。
先在web目录下创建tmp文件夹,然后修改如下代码:
修改goahead/cgi.c中的函数websGetCgiCommName中的如下代码:
PUBLIC char *websGetCgiCommName()
{
return sclone(websTempFile("/web", "cgi"));
}
3 cgi 崩溃
osdep.c
PUBLIC char *websTempFile(char *dir, char *prefix)
{
修改return此句:少了dir 参数
return sfmt("%s/%s-%d.tmp",prefix, count++);
修改后:
return sfmt("%s/%s-%d.tmp",dir, prefix, count++);
}
修改完毕需要重新编译goahead的源码。
参考文档:
http://embedthis.com/products/goahead/doc/guide/goahead/users/index.html