我在Github上有一个node.js应用程序。我之前从未做过任何VPS部署,而且我正在学习。
我正在使用Hostinger.in的VPS,正在使用的操作系统是Ubuntu 14.04。到目前为止,这就是我所做的:
我找不到任何用于将node.js部署到Hostinger VPS的在线资源,因此我正在关注为DigitialOcean编写的资源。
我克隆了我的存储库:
git clone https://github.com/myusername/node-project.git
它似乎已部署(没有给我任何错误)。 我在服务器上做的所有安装我都是root / admin用户。到目前为止,我还没有创建任何单独的用户来执行任何这些任务。
给我的服务器主机名是dangerous-pigs.com。现在我假设我的node.js应用程序已部署,但是当我访问dangerous-pigs.com时,它显示我找不到服务器错误。
我还为我的节点应用程序和运行
时永久安装forever start app.js
它说:
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: app.js
error: Cannot start forever
error: script /root/app.js does not exist.
这意味着该应用程序未安装或安装在根文件夹以外的其他位置。
有很多事情发生,我很困惑从哪里开始解决问题。
任何人都可以帮助我/一步一步地指导我从部署应用程序到在dangerous-pigs.com上运行它吗?
感谢。
********************************更新************** ****************
所以我似乎必须进入root中的项目文件夹并执行
npm install --production
之后我做了
node app.js
服务器似乎正在运行但是,如果我对服务提供的实际IP进行操作,我只能访问我的应用程序。
因此,如果我输入http://93.188.163.249:8000 - >这就是我的申请。
如何将其更改为指向域?
答案 0 :(得分:0)
经过一些研究后,我发现了这一点:
目前默认情况下,Apache2在端口80上运行。要在端口80上运行nodejs,我首先需要在我的Ubuntu服务器中安装libcap2-bin:
sudo apt-get install libcap2-bin
之后我做了
sudo setcap cap_net_bind_service=+ep /usr/bin/nodejs
如果你有一个mac,上面的命令有效,对于windows命令可能
sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
但请在做之前确认。
在进行这些更改之前,还需要停止nodejs服务器,否则它将无法工作。在我的情况下,我忘记了停止我的节点服务器并继续运行sudo setcap命令,但它没有改变端口(出于显而易见的原因)。
如果您使用永远运行节点,请执行:
forever stopall