Запустите программу cgi без сервера - PullRequest
1 голос
/ 03 апреля 2011

Существует ли инструмент, предоставивший программу cgi, и аргументы (строка запроса, метод, файл для загрузки и т. Д.) Могли бы установить правильные переменные среды и выполнить эту программу (с отладчиком или без него.

Примерно такой сценарий perl , только более твердый, с более четким выводом и вводом, поддержкой файлов и т. Д.

1 Ответ

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