热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LAMP将长命百岁?细看Web技术的养生之道

LAMP一直是最流行的Web开发平台,在面对其他新型技术平台时也依然坚挺。到底是什么决定了LAMP一直以来的经典和流行?

过去数年,代表Linux-Apache-MySQL-PHP的LAMP一直是最流行的Web开发平台,但新的平台,如Ruby on Rails,ASP.NET和J2EE在Web开发领域已经成为闪耀的明星,我们不禁想问,时至今日,LAMP仍然是Web开发最流行的选择吗?我目前认为它仍然是最流行的选择,LAMP之所以很受欢迎,是因为与其它平台相比,它具有很多优势。

成本低廉,扩展能力好

诚然,在比较开源的LAMP平台和商业化运作的,如J2EE或ASP.NET平台时,成本肯定是首先要考虑的因素,开源产品可免费下载使用,其本身的成本很廉价,此外,LAMP对硬件的要求也较低,而J2EE和ASP.NET对硬件的要求要高一些,在Web托管领域,LAMP类型的托管服务通常比J2EE和ASP.NET类型的要廉价一些。

有很多分析师认为LAMP虽然可以快速构建Web应用程序,但LAMP的扩展性并不好,要想取得良好的扩展能力付出的代价可能比当初构建Web应用程序还要多,但根据我的经验,LAMP的扩展性不佳不是因为平台本身的原因,而是开发的原因,很多不具备扩展能力的代码都是开发人员的“杰作”,为此我还专门研究了大量的Java和ASP代码,发现一样存在这个问题,最后发现经验不足的开发人员往往容易写出不具有良好扩展能力的代码,事实上,很多人根本不是自己写的代码,而是从其它地方直接复制过来的。

部署量大,安全性高

LAMP因其部署量非常大,安全问题也更少,因为能发现的问题几乎都被翻了过遍,它也是全世界范围内测试最彻底的软件组合。

当然,我并不是说LAMP组合就没有安全问题了,但大多数时候LAMP中暴露的安全问题都是因缺少经验的开发人员未遵循最佳实践编写的代码包含漏洞,或经验不足的系统管理员未正确配置LAMP造成的。

灵活,稳定

LAMP也提供了非常好的灵活性,开发人员可以选择自己喜欢的框架,甚至构建自己的框架,其它平台通常包括它们自己的框架,可选择的余地很小,例如,.NET框架是ASP.NET开发的唯一选择,J2EE是基于Java的框架,Rails则基于Ruby框架,使用PHP时,开发人员可以选择CakePHP,CodeIgniter,Zend Framework等框架。

使用LAMP还有另一个好处,开发人员可以获得全部的源代码,因此可以自行修改LAMP中的软件,以满足特殊需要,例如,Apache Web服务器支持可装载模块,开发人员可以开发自己的模块来处理特殊的任务,如通过可装载模块在Apache内实现身份认证,LAMP给开发人员提供了很好的选择灵活度。

LAMP一向以稳定而著称,新版本的向后兼容性通常也比较好,即便是升级到了新版本,开发人员也很少需要重写代码,LAMP的模块化特性使得它可高度配置,在稳定性方面,与商业化的ASP.NET或J2EE解决方案相比,LAMP也是毫不逊色的。

开发门槛低,系统成型快

因LAMP均可免费获得,使其变得非常流行,降低了开发人员进入LAMP的门槛,但ASP.NET和J2EE都有认证计划,开发人员可以遵循最佳实践开发,而要界定一名LAMP开发人员是否遵循最佳实践则很难。

前面我也提到ASP.NET和J2EE可选择的框架很少,虽然我一度认为这是一个缺点,但对于大型开发团队来说却是一个优点,可选择的余地很少可以让整个团队成员保持一致的知识体系,在培训和沟通方面都会节省很多时间,而LAMP阵营因可选的机会太多,团队成员个体容易养成独立的开发习惯和见解,会给团队协作带来很大麻烦,因此我认为LAMP更适合一个人的开发团队或小型团队使用。

使用LAMP可以快速搭建起系统的原型,成本也很低廉,这是LAMP的一大强项,对于初创公司而言,可以利用LAMP快速搭建一个系统原型,进而吸引投资人,尽快获得投资。

小结

无论如何,LAMP仍然是非常流行的Web开发平台,其低廉的成本和进入壁垒使得很多开发商都选择了它,LAMP安全、稳定和良好的扩展性也吸引了不少企业用户,对于初创公司,LAMP可以帮助其快速搭建系统原型,进而拿到投资,LAMP的灵活性也成为很多人选择它的理由。因此,我们可以肯定地得出结论:LAMP仍然是Web开发最流行的选择,在未来相当长一段时间里,它会和其它竞争技术共存。


推荐阅读
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
author-avatar
幸福不要躲008_784
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有