如何在 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 连接字符串