# 自建 Brynn NMP:告别投毒 lnmp 一键包,从官方源搭建干净的 LNMP 环境

自从前几年 lnmp.org 的一键包被曝出投毒事件,不少站长的服务器因此沦陷。这件事让我下决心写一套自己的 LNMP 管理脚本——**Brynn NMP**,所有组件全部来自官方软件源,不走任何第三方渠道。
顺带加了一个浏览器直接操作的 Web 文件管理器,比 FTP 方便太多了。
---
## 为什么不用 lnmp.org / 宝塔?
主要是信任问题。
lnmp.org 的脚本是闭源的一键包,你不知道里面在干什么。宝塔面板功能很全,但争议也不少,强制绑定账号、上传服务器信息的问题时有爆出。对于跑业务的服务器,这种不确定性我不能接受。
Brynn NMP 的逻辑很简单:
- **Nginx** 来自 nginx.org 官方源
- **MySQL** 来自 Debian/Ubuntu 系统源(Debian 12 自带的就是 MySQL 8.0,不需要 MySQL 官方源那个 GPG key 一直过期的问题)
- **PHP** 来自 ondrej/php,这是 PHP 社区公认的多版本 PPA
所有安装过程透明可查,没有黑盒。
---
## 功能概览
安装完之后菜单长这样:
```
╔══════════════════════════════════════╗
║ Brynn NMP v1.0.0 ║
║ Nginx + MySQL + PHP 多版本管理 ║
╚══════════════════════════════════════╝
系统状态:
Nginx: 运行中 MySQL: 运行中 PHP: 8.2
文件管理器: http://1.2.3.4:3389
1. 安装 Brynn NMP 环境
2. PHP 版本管理
3. 网站 / 域名管理
4. 数据库管理
5. 服务管理
6. SSL 证书管理
7. 文件管理器 (部署 / 端口 / 账号)
```
主要功能:
**PHP 多版本共存 **,7.4、8.0、8.1、8.2、8.3 可以同时装,每个网站独立选用哪个版本。PHP 扩展也是菜单化管理,redis、imagick、ioncube、swoole 一键装卸。exec 这类危险函数也可以单独开关。
**SSL 证书 ** 走 acme.sh,支持 Let's Encrypt、ZeroSSL、Buypass 三个 CA。验证方式支持 HTTP 文件验证、DNS 手动验证、DNS API 自动验证(Cloudflare、DNSPod、阿里云等)。如果是买的证书,直接粘贴内容或者填文件路径就能导入,自动验证证书和私钥是否匹配。
** 数据库管理 ** 创建库时会自动生成一个同名独立用户,密码随机生成并保存到 `/etc/brynn_nmp/databases/` 下,不用自己记。
---
## 文件管理器
这个是我觉得最实用的功能。
装好之后访问 `http:// 服务器 IP:3389`,用账号密码登录,就可以在浏览器里直接操作服务器文件:

支持的操作:拖放上传、打包下载、在线编辑代码文件、图片预览、压缩 / 解压、可视化 chmod、文件搜索、移动复制重命名删除……基本上 FTP 客户端能干的它都能干,而且不需要在本地装任何软件。
编辑器支持 Tab 缩进,改个配置文件不用再 `vim` 了,直接在浏览器里改完保存。
端口和账号都可以在主菜单第 7 项里管理,不用的时候可以直接关掉端口,安全性有保证。
---
## 安装方法
需要 root 权限,支持 Debian 10/11/12 和 Ubuntu 20.04/22.04/24.04。
```bash
wget https://c1ke.net/brynn_nmp.tar.gz
tar xzf brynn_nmp.tar.gz
bash brynn_nmp/brynn_nmp.sh
```
进入菜单后选 **1 → 1**(一键安装完整 LNMP),等待安装完成即可。
安装完后文件管理器会自动部署,初始密码在菜单 **7 → 5** 查看,建议第一时间改掉。
---
## 一些细节
** 为什么不用 MySQL 官方源?**
MySQL 官方 APT 源的 GPG key 在 2026 年已经过期,apt update 会报 EXPKEYSIG 错误。Debian 12 系统源里自带的就是 MySQL 8.0,功能完全一样,没有这个问题,所以直接用系统源。
** 网站根目录 **
统一放在 `/www/` 下,比如 `example.com` 的文件就放在 `/www/example.com/`。
**SSL 证书路径 **
证书统一保存在 `/etc/brynn_nmp/ssl/ 域名 /` 下,fullchain.pem 和 key.pem,方便其他工具引用。
** 文件管理器安全 **
auth 文件权限是 `640 root:www-data`,PHP-FPM 以 www-data 身份运行可以读取,但普通用户读不了。session 存在 `/tmp/brynn_nmp_sessions/` 下,不依赖系统 PHP session 配置。
---
## 开源地址
代码在 GitHub 上:
```
https://github.com/c1ke/brynn_nmp
```
MIT 协议,随便用随便改。如果遇到问题或者有想加的功能,欢迎开 issue。
