什么时候应该使用Perl CGI而不是PHP(反之亦然)?

对于业余爱好,我在托管服务器上提供了共享空间,其中许多都是 PHP和Perl CGI.我已经在几个地方阅读了CGI脚本现在已经过时了,主要针对性能问题(如 Is PHP or vanilla Perl CGI faster?).

但是,由于我刚刚开始研究Perl,所以我不想浪费时间在PHP中实现解决方案,这在Perl中更容易(或只有可能).

还有样板问题,我知道CPAN(即存在,还没有内容),但不熟悉PHP库(尽管我毫不怀疑它们存在).我不准备在10 ^ 10次之间从头开始编写登录过程或基本用户管理.

在这一点上,我不奢侈也浪费了很多时间在兴趣爱好项目的研究中,所以我想,让我们问专家一个头脑.

解决方法

如果您正在做大量,复杂的网站,并且浏览量很大,那么CGI的“过时”就只是一个因素.

许多人推荐CGI已经过时的想法真的不了解CGI是什么.有一个普遍的误解,CGI是一种固有的Perl技术.许多人攻击CGI是一种缓解对Perl的文化攻击的方式,以支持他们支持的任何语言.如果你想成为一个真正的技术专家,你需要了解这些根本问题,并根据情况做出选择.

CGI是一个与Web服务器的接口,允许您以任何语言编写互动页面 – even befunge.当服务器获取由CGI脚本控制的页面的请求时,服务器运行脚本并将结果返回给请求者.

如果您的编程语言需要VM,解释器或编译器在每次执行时加载,则每次访问页面时都需要启动时间.

CGI加速器,如FastCGI,mod_php,mod_perl等,始终保持内存中的解释器/ VM,可以保持库加载,甚至从脚本缓存字节码以减少脚本启动开销.

如果您正在制作一个简单的个人或爱好网站,CGI将会很好.那么PHP呢

如果您的网站需要更快的技术,您可以转到mod_perl,FastCGI或其他CGI加速技术.

您使用的语言应该由它提供的工具以及它们如何满足您的需求决定.

>列出您需要的功能.
>列出交易破产者名单.
>现在根据这两个列表检查每个可能的工具集.
哪一个出来最好?测试它
>它吸吗将其交给您的列表,然后返回步骤4.

此外,我建议不要使用befunge.只是因为这是可能的,这并不意味着你应该使用它.

更新:正如mpeters指出的那样,mod_perl,mod_ruby等等不仅仅是CGI加速器;他们提供对Apache API的访问.它们作为CGI加速器,但可以做很多,甚至更多.

FastCGI是一个纯CGI加速器.

更新2:PHP和CGI不是互斥的. PHP can be installed as a CGI.PHP通常与FastCGI一起使用.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...