通过 DreamHost 上的乘客进行的琐碎 Node.js - 权限被拒绝

Trivial Node.js via Passenger on DreamHost - Permission Denied

我尝试设置一个什么都不做的 Node 应用程序,但失败了。

我在容器中离线开发了一些 Node.js 代码。我现在想尝试在 DreamHost 上部署它。我正在逐步进行,一项一项地添加功能。从“Hello World”开始。

我设置了一个新的子域并启用了 Passenger。我能够提供一个 index.html 文件。我按照 https://help.dreamhost.com/hc/en-us/articles/360029083351-Installing-a-custom-version-of-NVM-and-Node-js 并安装了 Node 和 nvm(使用该文章中推荐的版本)。然后我安装了一些我打算使用的包(最值得注意的是 Express,其余的要等到以后才会发挥作用)。

只有一个 Hello World 应用程序,失败了。错误信息如下。但是,我检查了所有相关文件,它们都具有全局读取和执行权限。我想知道它是否是别的东西。我为 app.js 尝试了多个 Hello World 示例,直接从不同的教程中复制,其中 none 有效(但它们在本地有效)。我的更复杂的代码也不起作用,但这是下一步。

我错过了什么?我完全按照指示去做。我还需要期待什么其他地雷?我真的不想花时间与基础设施搏斗,我希望它“正常工作”,理想情况下。

An error occurred while starting the web application. It exited before signalling successful startup back to Phusion Passenger. Please read this article for more information about this problem. Raw process output: *** ERROR ***: Cannot execute /home/<user name>/.nvm/versions/node/v12.16.3: Permission denied (13)

不清楚是什么解决了这个问题。

运行 通过更改文件的权限,这看起来很明显。在 .htaccess 文件中将“/home/<用户名>/.nvm/versions/node/v12.16.3”更改为“/home/<用户名>/.nvm/versions/node/v12.16.3/bin/node”。这些似乎都没有解决它。

稍后再次重复该过程。在它后面跟着 `touch /tmp/restart.txt' 然后它开始工作了。我一直在编辑网络应用程序目录中的文件,所以不清楚触摸该文件做了什么。