goahead cgi 及出现的问题解决

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

上一篇:nginx设置不使用缓存 add_header Cache-Control no-cache


下一篇:iOS-延迟操作方法总结