首先读者需要参考博客http://bbs.ednchina.com/BLOG_ARTICLE_3029934.HTM的内容将GoAhead在SylixOS下正常执行。
其次编译一个SylixOS App工程做cgi程序,这里使用的工程代码如下:
#include <stdio.h> #include <stdlib.h> int main(void) { char *data; long m,n; printf("Content-type: text/html/n/n") ; printf("< TITLE >mult result< /TITLE > "); printf("< H3 >mult result< /H3 > "); data = getenv("QUERY_STRING"); if(data == NULL) { printf("< P >error! data is not input or data error!"); } else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2) { printf("< P >error!data must be a number!"); } else { printf("< P >%ld * %ld = %ld ",m,n,m*n); } return 0; } |
注:以上代码在执行中还有问题,不过作为验证CGI的流程已经足够,剩下的需要研究html相关内容。
本工程编译成功后,在apps/goahead目录下的web目录中建立cgi-bin目录,将其拷贝过去,如下所示(是否有后缀名称.cgi都无所谓):
[root@sylixos_station:/apps/goahead/web/cgi-bin]# ls cgi_test cgi_test.cgi |
修改route.txt文件中对cgi的目录设置:
route uri=/cgi-bin dir=/apps/goahead/web handler=cgi |
注:dir:是cgi-bin文件夹的绝对路径的上级目录,需要根据自身内容进行更改。
修改index.html文件,修改后内容如下:
<!DOCTYPE html> <html lang="en"> <head> <title>Home Page</title> </head> <body> <p>Congratulations! The server is up and running.<p/> </body> <FORM ACTION="/cgi-bin/cgi_test"> <INPUT NAME="m" SIZE="5"> <INPUT NAME="n" SIZE="5"><BR> <INPUT TYPE="submit" VALUE="OK"> </FORM> </html> |
按照开始说明的博客内容,将文件部署到相应位置,既可以实现对cgi的调用。
调试中的问题
goahead: 0: Cannot find CGI program:,修改rout.txt文件的cgi dir为绝对路径/apps/goahead/web
goahead: 0: CGI process file is not executeable:, chmod 777 ./cgi_test.cgi,
文章评论(0条评论)
登录后参与讨论