[英]How can I write a Perl web app that supports CGI, FastCGI and mod_perl?
如何在Perl中编写Web应用程序,以便它可以作为普通CGI脚本,FastCGI / FCGI脚本和mod_perl
/ mod_perl2
(最好只使用核心Perl模块和来自libwww-Perl的模块,并最小化Perl CPAN的数量)模块一个必须安装)? 我想尽量减少将脚本从使用CGI更改为使用FastCGI或mod_perl的脚本所需做的更改。
进一步的约束:如果可能的话,我想在单个文件中记录Web应用程序,而不是像目前那样将它拆分为模块。
有问题的网络应用程序是gitweb,Git web界面,如果重要的话。
我很惊讶没有人给出明显的答案。 使用催化剂 。 使用Catalyst,在任何Web环境中部署都很简单,包括vanilla CGI,FastCGI,mod_perl等。
将功能放在模块中。 使脚本只执行一个功能:选择要实例化的应用程序模块并处理特定于平台的内容,然后委派给常用功能。 因此,您将最终使用一个脚本来调用,三个或四个模块来实现每个平台,以及一个模块来实现一般功能。
App/bin/app.pl
App/lib/App/Common.pm
App/lib/App/Apache1.pm
App/lib/App/Apache2.pm
App/lib/App/CGI.pm
App/lib/App/FCGI.pm
正如Sinan指出的那样,您将代码分成了模块。 他没有使用魔术术语“模型 - 视图 - 控制器”(MVC)。 你真的在问如何使用MVC并支持多个控制器。 您的模型和视图是相同的,并且您的不同控制器使用它们来驱动应用程序。
另一种可能的解决方案是使用HTTP :: Engine
(另请参阅Perl Programming / HTTP :: Engine wikibook)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.