如何使用 Phusion Passenger 在 Plesk 上部署 NUXT3

问题描述 投票:0回答:2

我正在尝试在 Plesk 上部署一个 Nuxt 3 网站,使用纱线构建进行编译。因此,我拥有 Plesk 托管上的 PUBLIC 和 SERVER 文件夹。

我有 server.js 文件,如下:

`const app = require('./.output/server/index.mjs'); const http = require('http');

http.createServer(app).listen(process.env.PORT);`

我找不到 Nuxt 3 的单个指南,我需要启动该应用程序。但根据我的理解,Phusion 应该在不启动手动启动命令的情况下启动进程?

非常感谢

node.js passenger plesk phusion nuxt3
2个回答
4
投票

我解决了我的问题,而且比我预想的要容易得多:你需要做的只是创建一个 server.js 文件,其中包含 1 行:

import('./server/index.mjs');

这是nuxt3在./output/server/index.mjs中生成的文件。

仅此而已。我确实把来自 nuxt2 的事情搞得太复杂了,我希望它可以为其他人节省时间。


0
投票

我想接受的答案很好,但不幸的是这不是我的解决方案。我有一个 Plesk Obsidian,并以 Phusion Passenger 作为 OP。不幸的是,我无法访问日志,询问提供商是一件很痛苦的事情。

我的 Plesk Nodejs 配置如下:

我的应用程序在子域中运行

abc.my-url.de

所以我的

Document Root
abc.my-url.de/.output/public

我的
Aplication Url
http://abc.my-url.de

我的
Application Root
abc.my-url.de

.output
目录是用
yarn build

生成的

我第一次建议您将

Application Mode
设置为
development
,因为否则 Phusion Passenger 不会告诉您错误。

这就是使应用程序在我的案例中运行的原因:
我必须用内容创建一个

app.cjs
(名称并不重要,但结局很重要):

// !!! the ./ at the beginning is extremely important !!!
import('./.output/server/index.mjs');

我的

Application Startup File
app.cjs
并放置在子域的根目录中,同时还生成
.output
文件夹。

如果您的应用程序正在运行,请不要忘记将

Application Mode
更改为
production


我不清楚为什么我必须使用

cjs
文件,因为我不知道提供商的nodejs设置,而他将其保密。

我必须将

./
添加到 app.cjs 内的导入路径的原因是(提供商告诉我的),因为 Phusion Passenger 将应用程序复制到沙盒文件夹中,然后在其中运行。这并不能很好地解释它,但这就是我所得到的。

© www.soinside.com 2019 - 2024. All rights reserved.