wlnmp 一键安装包 260520:Nginx 1.30 与 PHP 8.5 双线更新

2026-05-20 23 预计阅读时间:1 分钟
来源:oschina.net AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:8 分钟

2019 年初,一位运维工程师觉得每次手动搭 LNMP 环境太折腾,顺手写了个一键脚本自己用。六年后的 260520 版本,这个项目已经覆盖了 Nginx、PHP、MySQL 等核心组件的多个版本并行安装——最新一次更新把 Nginx 推到了 1.30.1,PHP 8.5 系列一口气补到了 8.5.6,MySQL 也同步跟进 8.0.46 和 8.4.9。

这次更新值得关注的不是版本号本身,而是 PHP 8.4 和 8.5 多个小版本同时维护的策略,以及多版本 PHP 共存的安装方式。

版本更新一览

260520 版涉及的具体版本:

组件 更新版本
Nginx 1.30.1
PHP 8.2.31、8.3.31
PHP 8.4.18 → 8.4.21(4 个小版本)
PHP 8.5.3 → 8.5.6(4 个小版本)
MySQL 8.0.46、8.4.9

PHP 8.4 和 8.5 各保留了多个小版本包,这意味着你可以按需选择特定补丁版本,而不是被强制升级到最新。对于生产环境来说,这种粒度控制很实用——某个小版本如果引入了行为变化,你可以暂时停留在上一个已知稳定的版本。

快速安装与多版本 PHP 共存

wlnmp 的核心优势之一是支持同一台机器上安装多个 PHP 版本,各自独立运行。下面是完整的安装流程。

基础安装

# 下载并执行安装脚本(支持 CentOS 7/8、RHEL、Rocky、AlmaLinux 等)
curl -o wlnmp.sh https://wlnmp.cn/install.sh && bash wlnmp.sh

脚本会先配置 wlnmp 的 yum 源,之后就可以像普通软件包一样按需安装:

# 安装 Nginx 1.30
yum install wnginx-1.30.1

# 安装 PHP 8.5.6(最新)
yum install wphp-8.5.6

# 同时安装 PHP 8.3,用于老项目兼容
yum install wphp-8.3.31

# 安装 MySQL 8.4
yum install wmysql-8.4.9

多版本 PHP 的启停管理

安装多个 PHP 版本后,各版本的 systemd 服务名会带版本号后缀,互不冲突:

# 启动 PHP 8.5 的 FPM
systemctl start php8.5-fpm
systemctl enable php8.5-fpm

# 启动 PHP 8.3 的 FPM
systemctl start php8.3-fpm
systemctl enable php8.3-fpm

# 查看两个版本各自的监听端口或 socket
ss -tlnp | grep php-fpm

默认配置下,不同 PHP 版本会监听不同的 Unix socket 路径(如 /tmp/php8.5-fpm.sock/tmp/php8.3-fpm.sock),Nginx 通过 fastcgi_pass 指向不同 socket 即可实现按站点分配 PHP 版本。

Nginx 按站点指定 PHP 版本

这是一个典型的多版本共存配置——两个站点分别跑 PHP 8.5 和 PHP 8.3:

# /usr/local/nginx/conf/vhost/new-app.conf
server {
    listen 80;
    server_name new-app.example.com;
    root /data/www/new-app;
    index index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/tmp/php8.5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

# /usr/local/nginx/conf/vhost/legacy-app.conf
server {
    listen 80;
    server_name legacy-app.example.com;
    root /data/www/legacy-app;
    index index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/tmp/php8.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

配置完成后重载 Nginx:

nginx -t && nginx -s reload

这样同一台机器上,新项目用 PHP 8.5 的新特性(如属性钩子、不对称可见性),老项目继续跑 PHP 8.3 不用改代码,互不干扰。

PHP 8.5 小版本选择的实际考量

260520 版同时提供了 PHP 8.5.3 到 8.5.6 四个包。生产环境该选哪个?

一般原则:选最新小版本。 PHP 小版本(x.y.Z 中的 Z)主要是 bug 修复和安全补丁,不引入功能变更,8.5.6 是最安全的选项。

需要停留的情况: 如果你刚在某个小版本上完成了完整测试,还没来得及验证更新版本,可以暂时不升级。比如你的 CI 流程在 8.5.3 上跑通了全量测试,8.5.4 刚发布两天,先不动是合理的。

# 查看当前已安装的 PHP 版本
/usr/local/php8.5/bin/php -v

# 指定版本安装(而非默认最新)
yum install wphp-8.5.3

MySQL 8.0 与 8.4 的选择

这次更新同时提供了 MySQL 8.0.46 和 8.4.9。两者的关系不是简单的"新取代旧":

  • MySQL 8.0.x:长期维护的 LTS 线,适合已经在 8.0 上跑的生产库,升级小版本风险极低。
  • MySQL 8.4.x:创新发布线,包含新特性(如 MySQL 9 的部分特性前移),适合新项目或需要特定功能的场景。
# 稳妥选择:MySQL 8.0 LTS
yum install wmysql-8.0.46

# 新项目想试新特性:MySQL 8.4
yum install wmysql-8.4.9

# 安装后初始化
systemctl start mysql
systemctl enable mysql

# 验证版本
mysql -V

如果你现有数据库在 8.0 上稳定运行,没有明确需求驱动,没必要跳到 8.4。8.4 的部分默认行为有变化(如认证插件默认改为 caching_sha2_password),迁移需要额外适配。

上手检查清单

在 CentOS/RHEL 系列机器上用 wlnmp 部署前,建议走一遍这个流程:

  1. 确认系统版本——wlnmp 支持 CentOS 7/8、Rocky、AlmaLinux,不支持 Ubuntu/Debian。
  2. 规划 PHP 版本组合——列出每个站点需要的 PHP 版本,避免装了不用。
  3. 先装 Nginx,再装 PHP——Nginx 的配置模板依赖 PHP socket 路径,顺序装更顺畅。
  4. MySQL 选线——已有库选 8.0,新项目可以考虑 8.4。
  5. 装完后跑一遍 systemctl status——确认所有服务正常启动,再推配置。
# 一键检查所有 wlnmp 服务状态
systemctl status nginx php8.5-fpm php8.3-fpm mysql --no-pager

wlnmp 从 2019 年走到现在,维护节奏稳定,版本覆盖面越来越宽。260520 这次的重点不是某个单一组件的大升级,而是多版本并存策略的延续——这在实际运维中比"最新版一刀切"更管用。


相关推荐