Как я могу выполнить свой жемчуг сценарий CGI без апача?

Как я могу выполнить свой жемчуг сценарий CGI без апача? Это для тестирования, таким образом, некоторый единственный сервер процессов, который обрабатывает только один запрос во время, должен быть достаточно для меня.

5
задан brian d foy 7 April 2010 в 18:02
поделиться

4 ответа

Скрипт должен запускаться от имени конкретного пользователя, и в настоящее время я не хочу настраивать suexec для тестирования apache .

Ничто не мешает вам скопировать необходимую конфигурацию Apache, за исключением пользователя, под которым будет запущен httpd , интерфейса / порта для привязки и, возможно, cgi-bin и запускает отдельную копию httpd (с параметром -f ). Это был бы самый безопасный способ протестировать приложение в среде, в которой оно должно работать.

См. Запуск Apache :

можно указать его местоположение во время выполнения, используя параметр командной строки -f , как в

 / usr / local / apache2 / bin / apachectl -f /usr/local/apache2/conf/httpd.conf
1
ответ дан 13 December 2019 в 22:04
поделиться

Поскольку в комментариях вы упомянули, что используете CGI.pm, обратите внимание, что CGI.pm предлагает ряд параметров для запуска сценариев CGI из командной строки. . См. http://perldoc.perl.org/CGI.html#DEBUGGING . Даже без CGI.pm вы всегда можете просто подделать необходимые переменные среды и передать свой файл. По сути, все, что вам нужно сделать для запуска CGI из командной строки, - это настроить

 QUERY_STRING = blah=x&fu=bar

для методов GET или

 CONTENT_LENGTH = length of your file

для методов POST.

4
ответ дан 13 December 2019 в 22:04
поделиться

Plack :: App :: WrapCGI или Plack :: App :: CGIBin представляют один из способов сделать это (вместе с plackup и однопоточным Plack по умолчанию HTTP-сервер), но он не запускает CGI в контексте, в котором они действительно ожидают запуска (автономный процесс), поэтому он не совсем красивый (более или менее применяются те же предостережения, что и при использовании реестра modperl). Я не знаю ни одного веб-сервера на чистом Perl, который на самом деле разветвляет и запускает CGI как CGI (ни одного сервера без Perl, который выполняет CGI и требует нулевой конфигурации, хотя lighttpd подходит близко).

Причина, по которой «вы используете CGI.pm» является актуальным вопросом, заключается в том, что, если вы еще не запустили приложение, вы, возможно, захотите написать что-нибудь против чего-либо другого, например,

(в случайном порядке, чтобы скрыть мой очевидный фаворитизм) и получить возможность легко бегать то же приложение, что и автономный HTTP-сервер, приложение FastCGI, mod_perl или простой CGI, если толкает толчок, и без несоответствия импеданса, которое вы получаете при записи в интерфейс CGI.pm

5
ответ дан 13 December 2019 в 22:04
поделиться

Получите себе виртуальную машину и делайте с ней все, что захотите, включая запуск Apache. Дублируйте как можно больше целевых настроек.

0
ответ дан 13 December 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: