🕸️ 第八章 Web系统的开发原则
📄 一句话概括

一个 Web 应用拆开就是四层——服务器、语言、框架、数据库;LAMP 是其中最省钱的固定组合,而它今天最大的隐患不是不够快,是【版本太老】。

📝 本节和前面几节的关系

第七章讲完了一个网站上线前要检查什么,这一章换到【谁来把它搭起来】。8-1 是全章的地基:先看清一个 Web 应用由哪几块拼成,后面的框架、数据格式、虚拟化、容器,都是在给这几块换更好的零件。教材 8-1 的并列关键词是【MySQL、LAMP】。

一、四层结构:拆开之后其实很朴素

把任何一个动态网站拆开,看到的都是同一叠四层,从上到下依次是:

四层各管一段,所以换掉其中一层,另外三层不用跟着动。 这就是它被写成【层】而不是【一整块】的原因。

二、LAMP 是这四层的固定组合

LAMP 是这四个字母:Linux + Apache + MySQL + PHP。 它不是一个产品,而是一套约定俗成的搭配——四样都是免费的,凑在一起就能跑起一个动态网站。

这套组合之所以横扫互联网,原因很朴素:它每一层都不要钱,而且每一样都经过了三十年的生产考验。 对中小项目来说,它和商业方案(Windows Server + IIS + SQL Server)的差别, 主要不在性能,而在五年下来省下的授权费。

不过今天的实际写法已经松动了两处:

所以 LAMP 这四个字母,今天应当理解成【一类架构风格】,而不是四款指定软件。 国内也常有人把 A 换成 Nginx 写成 LNMP,指的其实是同一件事。

三、这四层现在各是谁的地盘

有公开的长期探测数据可以看(W3Techs,2026 年 9 月):

这三组数字里最反直觉的是语言这一行——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 秒实验

  1. 打开你在用的网站,按 F12 看响应头里的 Server 和 X-Powered-By,猜它属于哪一层栈。
  2. 查一下你所在公司或学校官网用的是不是 WordPress——是的话,它多半就是 LAMP 那一套。
  3. 把 LAMP 四个字母各换成今天更常见的替代品,念一遍:Linux + Nginx + MariaDB + PHP。

常见误区

  1. 错误:LAMP 是一个软件包。——纠正:它是四个独立项目的组合,可以随时拆开换掉其中任何一个。
  2. 错误:用 PHP 说明技术老旧。——纠正:PHP 占服务器端语言七成,是全球存量最大的一门后端语言;老的不是语言,是不升级的版本。
  3. 错误:免费软件不花钱,所以成本更低。——纠正:省下的是授权费,加上的是维护成本和风险;不管版本就等于把成本往后推。
自测三问(点开对答案) 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,**超过三分之一的站点跑在不再有安全更新的语言版本上。**

相关笔记