如何在 Plesk 上为 Node.js 管理器添加新的 node.js 版本?

Posted

技术标签:

【中文标题】如何在 Plesk 上为 Node.js 管理器添加新的 node.js 版本?【英文标题】:How to add a new node.js version for the Node.js Manager on Plesk? 【发布时间】:2017-10-23 05:43:03 【问题描述】:

Plesk Onyx 支持 Node.js。 我的 Node.js 管理器(来自 Plesk 扩展)目前支持两个 nodejs 版本。

用 centos 包管理器 yum 安装新版本并没有改变任何东西。

复制已安装的版本之一并将它们放入新文件夹,例如4/ 在 Node.js Manager 使用的目录结构中也没有导致结果。

我需要适用于 Meteor 1.4.x 应用程序的 Node 4.6.2 版本。

谢谢。

【问题讨论】:

幸运的是,我在这里找不到任何有关在服务器上提供新版本的信息docs.plesk.com/en-US/onyx/administrator-guide/76658 我现在从这个问题尝试了方法 1:talk.plesk.com/threads/… 但它还没有帮助。 也许这会有所帮助:docs.plesk.com/en-US/onyx/cli-linux/… 本教程推荐“在“Node.js”组件下选择想要的Node.js版本”,但是有不可选择的...docs.plesk.com/en-US/onyx/administrator-guide/… 【参考方案1】:

在 Plesk Onyx 中启用节点支持:

    只需从您的“更新和更新”Plesk 界面安装"Node support"。 转到您的"Node extension" page 启用/禁用您需要的节点版本

如果您需要默认节点支持安装未附带的其他节点版本:

    在您的服务器上安装Node Version Manager 安装您需要的版本,例如nvm install v4.8.4 复制粘贴节点版本到plesk cp -R ~/.nvm/versions/node/v4.8.4/ /opt/plesk/node/ 然后通知您的 plesk 关于您的安装plesk sbin nodemng register /opt/plesk/node/v4.8.4/bin/node 转到列出所有节点版本的节点扩展页面,点击刷新,瞧

如果您在通过 Plesk 安装 NPM 包时遇到问题,请在 SSH shell 中使用您需要的流星专用节点版本进行安装。

    nvm use 4.8.4 cd /bundle/programs/server npm install 进入 Plesk GUI,选择您的域,点击 node.js 配置您的应用并运行它

为此打开了一个专用线程以帮助人们找到它。

Install additional node versions in Plesk Onyx

【讨论】:

我已经做到了,现在使用新版本时出现错误。并尝试从 PLESK 运行安装节点包(NPM 安装)安装应用程序依赖项。 /usr/bin/env: 'node': 我怀疑没有这样的文件或目录,我需要更新 plesk 的 bash 配置文件......我该怎么做或者我错过了什么? 找这个很久了...Plesk 支持没有这个信息 @Sam 检查这个问题的答案以获得修复:***.com/questions/46755352/… 我能够使用本指南从 php:exec("/opt/plesk/node/14/bin/node app.js",$out,$err); 运行 nodejs 脚本。谢谢! 我必须使用plesk ext nodejs register ...。似乎这在较新版本的 Plesk 中发生了变化(使用 Plesk Obsidian 版本 18.0.39)。【参考方案2】:

为了补充 Maertz 已经很好的答案,这里是一个最新的更简单的指南

您可以使用n 来管理您的节点安装并在正确的目录中进行安装

假设你要安装node 16(因为plesk只自带v12),你可以运行

apt-get install npm
npm install -g n
export N=16
export N_PREFIX=/opt/plesk/node/$N && n $N && plesk sbin nodemng register $N_PREFIX/bin/node

如果您想要任何其他版本,请将N=16 替换为您的主要版本号

以节点 14 为例:

export N=14
export N_PREFIX=/opt/plesk/node/$N && n $N && plesk sbin nodemng register $N_PREFIX/bin/node

然后转到yourpleskserverdomain.com:8443/modules/nodejs/index.php/index/refresh自动刷新可用节点版本列表(如果有人通过CLI找到方法,请随时发表评论)

你已经完成了

您也可以重新运行这些命令来更新已安装节点主要版本的次要版本

【讨论】:

我在哪里运行 plesk 中的脚本?抱歉,我是新手。 @Mospective 您需要以 root 身份连接到 ssh 并在终端中运行它【参考方案3】:

对于那些得到错误的人:

"/usr/bin/env: 'node': No such file or directory"

在遵循 Maertz 的解决方案之后:

打开

/opt/plesk/node/YOURVERSION/lib/node_modules/npm/bin/npm-cli.js

将第一行改为

#!/opt/plesk/node/YOURVERSION/bin/node

【讨论】:

或者只是按照我的回答,这样你就不会首先得到错误;)【参考方案4】:

我未能添加我手动下载到我的 plesk 环境的随机版本。

但是使用 yum(yum 搜索关键字)搜索包名称,其中包括我能够找到的节点:“plesk-nodejs4.x86_64”

安装它解决了问题,现在 4.6.2 版本出现在 plesk 的 Node.js 管理器中。

【讨论】:

【参考方案5】:
apt-get install npm
npm install -g n
export N=13
export N_PREFIX=/opt/plesk/node/$N && n $N && plesk sbin nodemng register $N_PREFIX/bin/node

仅此一项是行不通的,我们还必须备份和更改符号链接。

备份现有的符号链接

mv /usr/bin/nodejs /usr/bin/node.backup 
mv /usr/bin/node /usr/bin/node.backup 
mv /usr/bin/npx /usr/bin/npx.backup 
mv /usr/bin/npm /usr/bin/npm.backup

创建新的符号链接

ln -s /opt/plesk/node/N/bin/node /usr/bin/node 
ln -s /opt/plesk/node/N/bin/node /usr/bin/nodejs 
ln -s /opt/plesk/node/N/bin/npx /usr/bin/npx 
ln -s /opt/plesk/node/N/bin/npm /usr/bin/npm

【讨论】:

以上是关于如何在 Plesk 上为 Node.js 管理器添加新的 node.js 版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node Js 上为 Rest API 创建一个干净的架构

在 Heroku 上为 Node.js 应用程序强制使用 HTTPS

在 Heroku 上为 Mongo Labs 数据库配置 Node.js 连接字符串

我如何在 google app 引擎上为 html5 创建 websocket

如何杀死 node.js 上的打开进程?

使用NGINX在端口80上为使用虚拟主机的Amazon EC2上托管的域的node.js应用程序提供HTTP流量