Как я могу выполнить свой жемчуг сценарий CGI без апача? Это для тестирования, таким образом, некоторый единственный сервер процессов, который обрабатывает только один запрос во время, должен быть достаточно для меня.
Скрипт должен запускаться от имени конкретного пользователя, и в настоящее время я не хочу настраивать
suexec
для тестированияapache
.
Ничто не мешает вам скопировать необходимую конфигурацию Apache, за исключением пользователя, под которым будет запущен httpd
, интерфейса / порта для привязки и, возможно, cgi-bin
и запускает отдельную копию httpd
(с параметром -f
). Это был бы самый безопасный способ протестировать приложение в среде, в которой оно должно работать.
См. Запуск Apache :
можно указать его местоположение во время выполнения, используя параметр командной строки
-f
, как в/ usr / local / apache2 / bin / apachectl -f /usr/local/apache2/conf/httpd.conf
Поскольку в комментариях вы упомянули, что используете 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.
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
Получите себе виртуальную машину и делайте с ней все, что захотите, включая запуск Apache. Дублируйте как можно больше целевых настроек.