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

安装Trilium时Passenger执行start命令报Unexpected identifier语法错误

Trilium + Passenger 共享主机启动报错排查及解决方案

根本原因

抛出的SyntaxError: Unexpected identifier属于Node.js语法报错,本质是Passenger启动命令被Node.js当做JS脚本直接解析执行,而非作为Passenger CLI指令运行,所以会把start参数识别为非法JS标识符。
该问题在A2这类限制配置权限的共享主机中高发,原因是cPanel默认的Node应用执行逻辑会优先将启动命令参数传递给Node解释器,而非触发Passenger的CLI逻辑。

排查步骤

  • 执行which passenger确认Passenger CLI的绝对路径,避免环境变量优先级异常导致调用错误的同名文件
  • 执行node ./trilium/src/www/app.js手动启动Trilium,确认Trilium本身依赖安装完整、可正常启动,排除应用本身的问题
  • 核对Trilium入口文件路径:官方Node版入口为src/www/app.js,原启动命令重复传入目录和文件名两个路径参数,属于参数错误

解决方案

方案1:修正启动命令(无需修改配置,优先尝试)

将Passenger调用改为绝对路径,合并入口文件参数,命令如下:

<which返回的Passenger绝对路径> start --app-type node ./trilium/src/www/app.js

例如which passenger返回/usr/local/bin/passenger,则实际执行命令为:

/usr/local/bin/passenger start --app-type node ./trilium/src/www/app.js

方案2:适配cPanel自动集成规则(无需手动执行启动命令)

直接在cPanel的「Node.js 应用」管理界面配置:

  • 应用根目录选择你拉取的trilium仓库根目录
  • 启动文件路径填写src/www/app.js
  • 保存配置后点击重启,cPanel内置的Passenger会自动识别并启动应用,无需手动执行启动命令

方案3:临时调试替代

如果上述方案都不生效,可以使用nohup后台临时启动Trilium(仅适用于调试,共享主机可能会自动回收后台进程):

nohup node ./trilium/src/www/app.js &

内容的提问来源于stack exchange,提问作者LorenAmelang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:04