как запустить программу cgi - PullRequest
3 голосов
/ 23 февраля 2011

Я новичок в cgi, и на примере я написал небольшую программу на c ++, которую я скомпилировал в файл .cgi.

Мой вопрос: мне нужен отдельный веб-сервер?У меня есть lighttpd в качестве веб-сервера по умолчанию ... Если я могу запустить мысль lighttpd, пожалуйста, объясните, как я могу это сделать ...

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011
  1. Убедитесь, что ваш файл .cgi является исполняемым, и поместите его в корневой каталог.
  2. Включите cgi http://redmine.lighttpd.net/wiki/1/Docs:ModCGI
  3. и перейдите на страницу.:)
0 голосов
/ 16 мая 2011

Строго говоря, вам не нужен сервер. Если вы просто хотите, чтобы ваш 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...