如何在没有CGI的情况下在Perl中构建网站?

And*_*ift 4 apache perl cgi mod-perl web

在这里问了一个关于Python的单独问题,并被告知"经典的CGI根本不是使用任何东西的最佳方式.经典的CGI服务器必须为每个请求产生一个新的进程"

现在我正在使用Apache在基于Perl的网站上工作,我的所有脚本都以:

use CGI;
Run Code Online (Sandbox Code Playgroud)

这是一个问题吗?是否有更新或更好的方法来构建基于Perl的网站?

tob*_*ink 9

使用Plack或基于Plack构建的框架(例如CatalystDancer/Dancer2)编写您的网站.

然后,您可以使用多种方法来部署网站.您可以将其部署为CGI脚本(易于操作,但效率低下),或者使用FastCGI或Apache的mod_perl,或者完全忘记Apache并使用独立的Perl Web服务器,如Starman.另一种选择是uWSGI,它在概念上类似于FastCGI.

Apache的mod_proxy允许您采用混合方法进行部署.您的网站可以在Apache上运行,它可以将特定URL的请求转发给Starman.

  • 使用CGI.pm和使用CGI(界面)之间存在差异.CGI.pm是非常苛刻的,应该避免.CGI,作为Web服务器和脚本之间的接口是完全可以的.效率低,当然,但它也有其优点:每个请求作为一个单独的进程运行,这意味着发生内存泄漏或段错误,它至少只会影响该请求,并且下一个请求将重新发生. (2认同)