如何在没有apache的情况下运行我的perl CGI脚本?

时间:2010-04-06 08:02:44

标签: perl cgi

如何在没有apache的情况下运行perl CGI脚本?这是出于测试目的,所以某种只处理一个请求的单进程服务器应该足够我。

4 个答案:

答案 0 :(得分:5)

Plack::App::WrapCGIPlack::App::CGIBin代表了一种方法(与plackup和默认的单线程Plack HTTP服务器一起),但它并没有在他们真正期望的上下文中运行CGI (独立进程)运行所以它并不完全漂亮(与使用modperl注册表相同的注意事项,或多或少)。我不知道一个纯粹的perl网络服务器,它实际上将CGI作为CGI进行分支和运行(也不是非perl的一个做CGI并且需要零配置,尽管lighttpd很接近)。

“你使用CGI.pm”的原因是一个相关的问题是因为如果你还没有启动应用程序,你可能会考虑写几乎任何其他,例如< / p>

(以随机顺序隐藏我明显的偏袒)并获得能够轻松运行相同的应用程序作为独立的HTTP服务器,FastCGI,mod_perl应用程序或普通CGI,如果推动推,并没有阻抗不匹配,你写到CGI.pm的界面时得到

答案 1 :(得分:3)

由于您在评论中提到您正在使用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方法。

答案 2 :(得分:1)

  

脚本应该作为特定用户运行,目前我不想在测试suexec上设置apache

除了要运行httpd的用户,要绑定到的接口/端口以及可能的cgi-bin目录并运行一个以外,没有什么可以阻止您复制必需的Apache配置httpd的单独副本(使用-f选项)。这将是在应该运行的环境中测试应用程序的最安全的方法。

请参阅Starting Apache

  

可以使用-f命令行选项在运行时指定其位置,如

/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf

答案 3 :(得分:0)

让自己成为虚拟机并随心所欲地做任何事情,包括运行apache。尽可能复制目标设置。