我期待听到一些关于选择“正确”语言(以及模块?)以实现单人网络项目的建议(仅限LAMP,在留言簿和完全成熟的博客之间的复杂性,为高开发根据这些要求,每天展示50,000次展示次数的流量网站:
输出缓存(想想:Wordpress Super-Cache等),当存在缓存页面时,完全绕过脚本语言。这个非常重要。
“网站蜘蛛”模块访问网站并解析HTML,Javascript支持将是一个优势
多媒体文件(mp3,jpg / gif / png,flv / wmv)的面向对象处理,无需为所有内容编写自己的包装
编码原始脚本文件的可能性(二进制文件?)无法轻易被篡改
对于MVC合规性,我已经在研究像Catalyst这样的框架。我唯一的抱怨是,它似乎需要自己的服务器应用程序。也许PHP等价物有更好的方式来启动应用程序......?
回答时,不要只说“PHP / Perl可以做到这一切以及更多”,但请为这些要点提供一些建议。
提前致谢
答案 0 :(得分:12)
输出缓存:两种语言都有出色的缓存解决方案。
网站蜘蛛:Perl有WWW::Mechanize,这是我见过的最好的模块。
面向对象的多媒体文件处理:Perl在那里具有优势。 CPAN具有适用于各种多媒体文件的模块。 PHP似乎特别缺少对视频格式的支持。
编码:两者都必须可解释才能执行。我知道两者都有混淆它们的解决方案,但也有反混淆工具。我建议放弃它,这主要是让你自己的生活变得更加困难。
P.S。 Catalyst不需要自己的Web服务器,但它确实为development purposes提供了一个特殊的服务器。通常,您可以使用Apache或其他支持Web服务器的FastCGI来部署它。
答案 1 :(得分:8)
我建议将WWW :: Mechanize作为抓取工具使用Gungho代替。
至于缓存,它往往取决于应用程序(除非它只是“缓存此页面10分钟”)。使用MVC Perl应用程序实现它比使用PHP要容易得多。看看我有点聪明的Angerwhale::Cache。你会注意到我在这里交易速度是准确的 - 一个过时的页面永远不会被提供。您可能愿意更自由,如果是这样,您可以从许多请求中删除应用程序。 (例如,每5分钟运行一次更新静态HTML页面。)
答案 2 :(得分:4)
Catalyst可以轻松完成您需要的所有操作。如果正确使用M和V并将C保持在最低限度(由Catalyst社区鼓励),则没有理由不获得所需的可扩展性。
我不知道你的意思是“它似乎需要自己的服务器应用程序”。部署Catalyst应用程序可以像
一样简单CATALYST_ENGINE=HTTP:Prefork script/myapp_server.pl -p 80
但它显然也支持其他选项。
答案 3 :(得分:4)
使用Perl,您可以使用PAR打包您的应用程序。这可以简化部署并允许使用PAR::Filter modules对其进行模糊处理。还有Apache::PAR将PAR与mod_perl环境集成。
<强>更新强> 好吧,正如它在网站上所说,PAR是纯perl(不需要C编译),因此您可以将它安装在任何可以编写文件的服务器上。您可以在普通的perl脚本中加载PAR文件中的模块,如下所示:
use PAR;
use lib "foo.par"; # the .par part is optional
use Hello; # module from the par file.
将大部分逻辑放入模块中,并使用简单的启动器脚本从PAR文件中加载它们。
但是,如果您打算构建一个大型,复杂的应用程序,请帮自己一个忙,并获得一个可以让您安装模块或将为您安装它们的主机。另外,使用mod_perl或FastCgi来加速你的应用程序。
GrokThis有好的计划便宜。还有其他好东道主。
答案 4 :(得分:2)
我认为PHP很容易就能应付这样一个项目,比如莱昂表示它对多媒体的支持可能不如perl那么好,但对于剩下的东西它肯定应该是好的。
PHP有很多不同的缓存API和框架,我个人可以推荐CakePHP作为一个非常好的框架,但它非常笨重,定制的解决方案可能会更好。
我使用的PHP中最好的网站蜘蛛是Sphider。
不确定在PHP中处理视频和音频文件,但图像ImageMagick非常好。
PHP中的大量内容以及编码检查manual的内容。
答案 5 :(得分:2)
但是请记住,50,000次展示听起来很多,但并不是那么多。在您真正开始为并发用户产生大量流量之前,您可能不需要担心缓存。
其他所有内容都被提及了。如果您的服务器被锁定,您的源代码永远不应该被更改 - 所以除非您分发零售应用程序,否则我不明白为什么您需要部署源默认设置。您只需为站点/软件的实施/部署和解释添加更多步骤。
答案 6 :(得分:1)