我是cgi的新手,在一个例子中,我用c ++编写了一个小程序,我编译成.cgi
文件。
我的问题是:我需要一个单独的网络服务器吗?我有lighttpd作为我的默认网络服务器...如果我可以运行思想lighttpd请解释我该怎么做...
答案 0 :(得分:2)
答案 1 :(得分:0)
严格来说,您不需要需要服务器。如果您只想看到CGI正在运行,您可以使用我的小runCGI项目。
您只需要设置一个类似于此内容的yaml
文件
_exec: /var/cgi-bin/myfile.cgi
method: GET
query_string:
q: s
然后运行
./runCGI myyamlfile.yaml
您将在控制台的标准输出上看到输出。
您甚至可以使用gdb
调试它,调试runCGI gdb runCGI
,使用正确的参数(run someyaml.yaml
)运行,发现tcatch exec
(tcatch
抓住它只有一次)然后设置断点到您的CGI文件:
$ g++ a.cc -o a.out
$ cat a.yaml
method: GET
_exec: a.out
$ gdb runCGI
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
(gdb) tcatch exec
Catchpoint 1 (exec)
(gdb) run a.yaml
Starting program: /home/elazar/runCGI/runCGI a.yaml
Executing new program: /home/elazar/runCGI/a.out
0x00007fc3a24a6a60 in ?? () from /lib64/ld-linux-x86-64.so.2
(gdb) tbreak main
Breakpoint 2 at 0x400577: file a.cc, line 2.
(gdb) c
Continuing.
main (argc=1, argv=0x7fff14891408) at a.cc:2
2 int a =0;
(gdb)