一个 Web 应用拆开就是四层——服务器、语言、框架、数据库;LAMP 是其中最省钱的固定组合,而它今天最大的隐患不是不够快,是【版本太老】。
第七章讲完了一个网站上线前要检查什么,这一章换到【谁来把它搭起来】。8-1 是全章的地基:先看清一个 Web 应用由哪几块拼成,后面的框架、数据格式、虚拟化、容器,都是在给这几块换更好的零件。教材 8-1 的并列关键词是【MySQL、LAMP】。
一、四层结构:拆开之后其实很朴素
把任何一个动态网站拆开,看到的都是同一叠四层,从上到下依次是:
- Web 服务器——接住请求,决定把它交给谁。它自己不算账,只负责分派。
- 运行环境——真正执行程序的那台发动机,也就是你选了哪门语言。
- 框架——把常用写法提前打包好,省得每一行都从头写。
- 数据库——把需要记住的东西存下来:用户、订单、内容。
四层各管一段,所以换掉其中一层,另外三层不用跟着动。 这就是它被写成【层】而不是【一整块】的原因。
二、LAMP 是这四层的固定组合
LAMP 是这四个字母:Linux + Apache + MySQL + PHP。 它不是一个产品,而是一套约定俗成的搭配——四样都是免费的,凑在一起就能跑起一个动态网站。
这套组合之所以横扫互联网,原因很朴素:它每一层都不要钱,而且每一样都经过了三十年的生产考验。 对中小项目来说,它和商业方案(Windows Server + IIS + SQL Server)的差别, 主要不在性能,而在五年下来省下的授权费。
不过今天的实际写法已经松动了两处:
- Apache 常被 Nginx 换掉——Nginx 在静态内容和高并发上更省资源,今天已经是份额第一。
- MySQL 常被 MariaDB 换掉——两者同源,接口基本兼容。
所以 LAMP 这四个字母,今天应当理解成【一类架构风格】,而不是四款指定软件。 国内也常有人把 A 换成 Nginx 写成 LNMP,指的其实是同一件事。
三、这四层现在各是谁的地盘
有公开的长期探测数据可以看(W3Techs,2026 年 9 月):
- 操作系统:Unix 系 92.0%,Windows 8.2%。
- Web 服务器:Nginx 31.3%,Cloudflare 29.9%,Apache 22.5%,LiteSpeed 14.7%,Node.js 7.0%。
- 服务器端语言:PHP 70.2%,JavaScript 7.2%,Ruby 7.0%,Java 5.5%,Scala 5.1%。
这三组数字里最反直觉的是语言这一行——PHP 一家占七成。 你在新闻里看到的全是新语言,但整个互联网的存量网站,绝大多数还是跑在 PHP 上。 原因不是它先进,而是 WordPress 这类建站系统把这一层铺满了。
数据库这一层,按 DB-Engines 2026 年 10 月的榜单,前四名是 Oracle(1119.79)、MySQL(837.96)、SQL Server(694.47)、PostgreSQL(688.75)。 把开源和商业分开算受欢迎度,开源是 50.4%、商业 49.6%——开源已经在总量上追平了商业。
四、最该警惕的不是速度,是版本
上面那些份额都是好消息,但有个数字很不好看: PHP 站点里,PHP 8 占 64.2%、PHP 7 占 28.0%、PHP 5 占 7.8%。
PHP 7 和 PHP 5 都已经不再接收安全更新。 28.0 + 7.8 = 35.8%,也就是超过三分之一的 PHP 站点,跑在一个不会再有安全补丁的版本上。
这就是【免费软件】真正的代价所在:它不要钱,但要人管。 没有发票提醒你续费,也没有客服打电话通知你升级—— 软件不会自己变旧,是它停在原地的时候世界往前走了。
五、动手 Demo:把这四层的份额和版本分布算一遍
份额是别人探出来的,但版本分布的比例可以直接算:
php8, php7, php5 = 64.2, 28.0, 7.8
print(" 不在维护线上的比例 = %.1f%%" % (php7 + php5))
print(" 开源与商业受欢迎度差距 = %.1f 个百分点" % (50.4 - 49.6))
实跑输出:
--------------------------------------------------------------------
把一个 Web 应用拆成四层,再看每层谁在干活
--------------------------------------------------------------------
教材把后端叫【构成元素】,其实就是一叠四层的东西。
从上到下依次是:
层 干什么
--------------------------------------------------
Web 服务器 接住请求,决定把它交给谁
运行环境(语言) 真正执行程序的那台【发动机】
框架 把常用写法打包好,省得从头写
数据库 把要记住的东西存下来
--------------------------------------------------
LAMP 就是把其中四样凑成一套固定组合——Linux + Apache + MySQL + PHP。
今天的实际写法已经松动:Apache 常被 Nginx 换掉,MySQL 常被 MariaDB 换掉,
但【操作系统 + 服务器 + 数据库 + 脚本语言】这个骨架没变。
这四层现在各是谁的地盘,有公开的探测数据(W3Techs,2026 年 9 月):
层 / 技术 份额
---------------------------------------------
操作系统:Unix 系 92.0%
操作系统:Windows 8.2%
Web 服务器:Nginx 31.3%
Web 服务器:Cloudflare 29.9%(增速最快)
Web 服务器:Apache 22.5%
Web 服务器:LiteSpeed 14.7%
Web 服务器:Node.js 7.0%
---------------------------------------------
语言这一层的数据更能说明问题——服务器端语言里,PHP 一家占七成:
服务器端语言 份额
-------------------------------------------
PHP 70.2%
JavaScript(Node.js) 7.2%(增长最快)
Ruby 7.0%
Java 5.5%
Scala 5.1%
-------------------------------------------
数据库这一层,按 DB-Engines 2026 年 10 月的榜单,前四名是:
数据库 得分 说明
--------------------------------------------------
Oracle 1119.79 商业老牌,连续多年第一
MySQL 837.96 开源第一,但同比在掉
SQL Server 694.47 微软生态内仍强势
PostgreSQL 688.75 前四里唯一同比上涨
--------------------------------------------------
这个榜共收录 440 个数据库系统。把开源和商业分开算受欢迎度,
开源是 50.4%、商业是 49.6%——开源已经在总量上追平了商业。
最后一组数字值得单独记住:PHP 站点里,
PHP 8 占 64.2%、PHP 7 占 28.0%、PHP 5 占 7.8%。
也就是说,28.0 + 7.8 = 35.8%,超过三分之一还在不再修安全问题的大版本上。
这就是下一节要讲的【免费软件也要维护】。
最关键的一行是那个 35.8%。 它说的是:每三个 PHP 站点里就有一个,安全性只能靠【还没人发现这个漏洞】。 下一节讲免费软件的更新与插件,说的就是这个问题的另一半。
30 秒实验
- 打开你在用的网站,按 F12 看响应头里的
Server和X-Powered-By,猜它属于哪一层栈。 - 查一下你所在公司或学校官网用的是不是 WordPress——是的话,它多半就是 LAMP 那一套。
- 把 LAMP 四个字母各换成今天更常见的替代品,念一遍:Linux + Nginx + MariaDB + PHP。
常见误区
- 错误:LAMP 是一个软件包。——纠正:它是四个独立项目的组合,可以随时拆开换掉其中任何一个。
- 错误:用 PHP 说明技术老旧。——纠正:PHP 占服务器端语言七成,是全球存量最大的一门后端语言;老的不是语言,是不升级的版本。
- 错误:免费软件不花钱,所以成本更低。——纠正:省下的是授权费,加上的是维护成本和风险;不管版本就等于把成本往后推。
自测三问(点开对答案)
1. 一个 Web 应用的四层是什么? —— **Web 服务器、运行环境(语言)、框架、数据库。** 从上到下分工,换一层不影响另外三层。 2. LAMP 里的 A 为什么可能不是 Apache? —— 因为**今天 Nginx 的份额已经超过 Apache**(31.3% 对 22.5%),很多所谓 LAMP 站点实际跑的是 Nginx,写法上叫 LNMP。 3. 本节最该记住的一个百分比是哪个? —— **35.8%**——28.0% 的 PHP 7 加 7.8% 的 PHP 5,**超过三分之一的站点跑在不再有安全更新的语言版本上。**- ☐ 下一节(8-2 Web应用使用免费软件:OSS、操作环境、更新、插件)
相关笔记
- 是否使用数据库 —— 上一章讲的第一个检查项,就是这一节四层里的最下面那层
- 服务器端的脚本语言 —— 后端语言在整章架构里的位置
- 创建Web服务器的方法 —— 这四层具体怎么装起来
- SQL、DBMS-用统一的方式处理数据 —— 数据库与 SQL 的另一套讲法
- 构建IaaS的基础软件 —— 这些层在云上由谁来管
- 🕸️ Web技术原理 · 索引