如何使用Phusion Passenger在Plesk上部署并启动Nuxt3项目
在Plesk上部署Nuxt3应用的解决步骤
先修复你的启动文件问题
你当前的server.js存在模块加载错误——Nuxt3编译生成的.output/server/index.mjs是ES模块,无法通过CommonJS的require加载,需要调整写法:
推荐方案:改用ES模块启动文件
将server.js重命名为server.mjs,内容替换为:
import { createServer } from 'http' import app from './.output/server/index.mjs' createServer(app).listen(process.env.PORT || 3000)
备选方案:修改package.json启用ES模块
如果坚持使用.js后缀,在项目根目录的package.json中添加:
{ "type": "module" }
同时将server.js修改为ES模块语法:
import app from './.output/server/index.mjs'; import http from 'http'; http.createServer(app).listen(process.env.PORT || 3000);
Plesk + Phusion Passenger 自动启动配置
Phusion Passenger确实支持自动启动Node.js应用,但需要满足它的检测规则,按以下步骤配置:
确认项目结构
不要拆分上传PUBLIC和SERVER文件夹,直接上传Nuxt3编译后的完整.output文件夹到Plesk主机的项目根目录,同时将修改后的启动文件(server.mjs或server.js)放在根目录。Plesk后台配置
- 进入「网站与域名」→ 选择目标域名 → 点击「Node.js」选项
- 配置核心参数:
- 应用模式:选择「生产」
- 应用根目录:指向包含
.output和启动文件的文件夹 - 启动文件:填写你修改后的文件名(如
server.mjs) - 端口:可留空(Passenger自动分配)或指定自定义端口
- 点击「启用Node.js」,再点击「重启应用」
验证自动启动
Passenger会自动管理应用进程:启动时自动拉起进程,进程崩溃后自动重启。你可以通过Plesk的Node.js页面查看应用状态,或直接访问域名确认网站是否正常运行。
常见排查点
- 查看Plesk的「错误日志」(路径:网站与域名→日志→错误日志),排查模块加载、权限或端口占用问题
- 确保Plesk配置的Node.js版本符合Nuxt3要求(推荐v18及以上),可在Node.js设置中切换版本
- 确认
.output文件夹及启动文件的权限正确,Plesk运行用户需拥有读取权限
内容的提问来源于stack exchange,提问作者Marghen
相关产品推荐
相关产品推荐

