【发布时间】:2018-04-25 13:44:12
【问题描述】:
将 Phusion Passenger 与安装了我的 nvm 的节点版本一起使用的最佳做法是什么?
在this tutorial 关于使用Passenger 运行Meteor 应用程序时,我读到:
[Y]我们的 Meteor 应用程序以...的所有者身份运行 main.js 文件(部署 Meteor 包时),除非您对其进行配置 否则。当然,您仍然必须确保您的每一个 应用程序归其他用户所有。
Meteor 1.6 与 Node.js v8.8.1 一起使用,所以我使用 nvm 来安装 node。我创建了一个特殊的meteor 用户来运行node 和nvm 的nvm 安装。因此,Node 安装在 /home/meteor/.nvm/versions/node/v8.8.1/bin/node,并且 /home/meteor/.nvm/versions/node/v8.8.1/bin/ 被添加到我的 meteor 用户的 $PATH 变量中。结果,以meteor 用户的身份调用node -v 表明v8.8.1 已安装并可访问。
我关注this tutorial 将我的 Meteor 应用程序部署到我的服务器。
作为bundle/programs/server 目录中的meteor 用户,我运行npm install --production。我将meteor 设为bundle/ 内部所有内容的所有者。
我曾预计Passenger 会以meteor 用户身份启动节点,并且一切都会顺利进行。取而代之的是,Passenger 显示了一个有用的警报页面,为“出了点问题”道歉。
为了解决这个问题,我在/usr/bin/node 创建了一个指向/home/meteor/.nvm/versions/node/v8.8.1/bin/node 的符号链接,现在Passenger 很高兴启动捆绑的应用程序。
这向我表明,Passenger 没有以 meteor 用户的身份运行 main.js。或者meteor 用户看不到自己的节点版本还有其他原因吗?
上面的引用表明可以配置乘客使用的用户。我该怎么做?
简而言之:使用 nvm 安装的 node 版本的官方 Passenger 方法是什么?
【问题讨论】:
标签: node.js nginx meteor passenger