phpEnv 不支持直接安装 Uptime Kuma,因其是 Node.js 应用,而 phpEnv 仅为 PHP 环境套件,缺失 Node.js 运行时及 PM2 等进程管理能力,且服务面板无法托管非原生进程。

phpEnv 本身不支持直接安装 Uptime Kuma —— 因为 Uptime Kuma 是 Node.js 应用,而 phpEnv 是为 PHP 环境(尤其是 Windows 下的 PHP + Nginx/Apache + MySQL 快速套件)设计的,它默认不带 Node.js 运行时,也不提供 systemd 或 PM2 等进程管理能力。
为什么不能直接在 phpEnv 里“安装”Uptime Kuma
Uptime Kuma 的官方部署方式依赖:node、npm、pm2(或 docker),且需监听非 Apache/Nginx 默认端口(如 3001)。phpEnv 的服务管理器只控制 php-cgi.exe、nginx.exe、mysqld.exe 等进程,无法识别或托管 Node.js 服务。
常见错误现象包括:
- 运行
npm install报错'npm' is not recognized as an internal or external command - 手动启动
npm run serve后窗口关闭即退出(无守护) - 即使跑起来,phpEnv 的“服务面板”里看不到该进程,重启电脑后自动消失
绕过 phpEnv 限制:Windows 下本地运行 Uptime Kuma 的可行路径
你不需要动 phpEnv 的核心组件,只需在系统层面补全缺失依赖,并用轻量方式托管:
立即学习“PHP免费学习笔记(深入)”;
- 从 nodejs.org 下载并安装 LTS 版本(推荐
v20.x),勾选 “Add to PATH” - 打开新终端验证:
node -v和npm -v应正常输出 - 克隆项目:
git clone https://github.com/louislam/uptime-kuma.git(或下载 ZIP 解压) - 进入目录执行:
npm install && npm run build(构建前端资源) - 用
pm2启动(比node server/server.js更可靠):npm install -g pm2→pm2 start server/server.js --name uptime-kuma - 确认监听:
netstat -ano | findstr :3001(默认端口)
让 phpEnv 的 Nginx 反向代理到 Uptime Kuma(可选但推荐)
这样就能用 http://localhost/uptime 访问,避免端口暴露,也统一入口。编辑 phpEnv 自带的 nginx/conf/nginx.conf,在 server { ... } 块内加入:
location /uptime/ {
proxy_pass http://127.0.0.1:3001/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
注意两点:
- Uptime Kuma 需启用 base path:启动时加参数
--base-path /uptime/(即改用pm2 start server/server.js --name uptime-kuma -- --base-path /uptime/) - 前端资源路径会因 base-path 改变,所以必须配合
npm run build后再启动,否则 CSS/JS 404
容易被忽略的关键点
Uptime Kuma 的数据默认存在 uptime-kuma/data 目录下的 SQLite 文件里——这个路径是相对当前工作目录的。如果你用 pm2 启动,务必用 pm2 start ecosystem.config.js 或指定 --cwd,否则每次重启可能生成新数据库,导致监控记录丢失。
另外,phpEnv 的「环境变量」和「服务自启」机制对 Node.js 进程完全无效,不要试图把它加进 phpEnv 的 ini 或 service 列表;它必须由 Windows Task Scheduler、PM2 自启,或开机脚本单独管理。



















