我问了一个关于Python here的单独问题,并被告知"经典CGI并不是使用任何东西的最佳方式。使用经典的CGI服务器必须为每个请求生成一个新流程"
现在我正在使用Apache开发一个基于Perl的网站,我的所有脚本都以:
开头use CGI;
这是一个问题吗?是否有更新或更好的方法来构建基于Perl的网站?
答案 0 :(得分:9)
使用Plack或基于Plack构建的框架(例如Catalyst或Dancer / Dancer2)撰写您的网站。
然后您可以选择部署网站。您可以将其部署为CGI脚本(易于操作但效率低下),或者使用FastCGI或Apache的mod_perl,或者完全忘记Apache并使用独立的Perl Web服务器,例如Starman。另一种选择是uWSGI,它在概念上类似于FastCGI。
Apache的mod_proxy允许您采用混合方法进行部署。您的网站可以在Apache上运行,它可以将特定URL的请求转发给Starman。
答案 1 :(得分:4)
CGI
perl模块是一种与网络服务器连接的方式。它完成了它一直以来的工作,但它被各种各样的Web开发框架所取代。
The rational for this decision is that CGI.pm is no longer considered good practice for developing web applications, including quick prototyping and small web scripts. There are far better, cleaner, quicker, easier, safer, more scalable, more extensible, more modern alternatives available at this point in time. These will be documented with
CGI::Alternatives
然而,对于各种各样的框架来说,有一点学习曲线,我个人觉得它们适应了“适当的wesbites” - 而不是“带有网络界面的脚本”类型的东西,我倾向于拼凑起来。因此,我建议阅读这些替代方案,如果你想做一些聪明的事情 - 使用其中一个。
如果你不是,那么你可能首先不需要CGI
。