You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

共享VPS安装Strapi时better-sqlite3依赖安装报错

报错根因

安装日志里的两类警告完全不影响流程,无需处理:

  • esbuild-windows-*相关的可选依赖跳过提示是正常现象,这些依赖仅在Windows平台生效,Linux环境下会自动忽略
  • peer依赖缺失属于非致命警告,不会中断安装,后续补装即可

真正导致安装失败的核心是better-sqlite3@7.4.6安装阶段抛出spawn ENOENT错误:Strapi默认使用SQLite数据库,对应的驱动better-sqlite3是原生模块,优先拉取预编译二进制包,匹配不到系统版本时会回退到本地源码编译;你使用的隔离共享VPS环境既缺少匹配版本的预编译包,也没有预装编译所需的基础工具链,同时npm默认脚本shell路径配置异常,最终导致安装进程退出。

可行解决方案(全程使用npm,无需额外安装包管理工具)

方案1:切换数据库类型绕过原生依赖编译(成功率最高,适配共享主机环境)

共享主机普遍缺少原生模块编译环境,直接绕过需要本地编译的SQLite驱动即可:

  • 先清理之前安装失败的残留目录:rm -rf ~/strapi
  • 执行安装命令时直接指定数据库类型为MySQL(Planethost共享主机默认支持MySQL,提前在面板创建好数据库实例即可),跳过交互式选择步骤:
    /opt/alt/alt-nodejs14/root/usr/bin/npx create-strapi-app@latest strapi --no-run --dbclient=mysql --dbhost=localhost --dbport=3306 --dbname=你提前创建的数据库名 --dbusername=数据库账号 --dbpassword=数据库密码
  • 进入项目目录补装之前提示缺失的peer依赖:
cd strapi
npm install @strapi/icons@^0.0.1-alpha.73 qs@6.10.1 react@^17.0.2 react-dom@^17.0.2
  • 执行构建命令验证安装:npm run build,构建无报错后执行npm run start即可启动服务

方案2:需保留SQLite的修复流程

如果必须使用SQLite,按以下步骤修复环境配置后重装:

  1. 修正npm脚本执行的shell路径,解决sh找不到的报错:npm config set script-shell /bin/bash
  2. 清理残留目录后重装,安装时强制better-sqlite3使用预编译包,跳过本地编译步骤:
rm -rf ~/strapi
/opt/alt/alt-nodejs14/root/usr/bin/npx create-strapi-app@latest strapi --no-run
cd strapi
npm install better-sqlite3@7.4.6 --build-from-source=false
  1. 补装缺失的peer依赖后执行构建验证:
    npm install @strapi/icons@^0.0.1-alpha.73 qs@6.10.1 react@^17.0.2 react-dom@^17.0.2 && npm run build
补充说明
  • 你当前使用的Node.js 14.17.3版本不符合最新版Strapi的最低运行要求(需Node.js 16及以上),建议先在主机面板切换到alt-nodejs16或alt-nodejs18版本后再执行安装,避免后续出现运行时兼容问题
  • 共享主机启动Strapi时不要使用默认1337端口,需要指定主机分配给你的可用端口启动,例如PORT=分配到的端口号 npm run start,避免出现无权限绑定端口的问题

内容的提问来源于stack exchange,提问作者harry-stot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 01:06:22