将我的node.js应用程序从Github部署到VPS

时间:2017-04-19 04:24:41

标签: node.js git ubuntu vps digital-ocean

我在Github上有一个node.js应用程序。我之前从未做过任何VPS部署,而且我正在学习。

我正在使用Hostinger.in的VPS,正在使用的操作系统是Ubuntu 14.04。到目前为止,这就是我所做的:

  1. 从我的终端
  2. 成功连接到他们的SSH
  3. 在服务器[https://www.hostinger.com/tutorials/vps/how-to-install-node-js-on-ubuntu]
  4. 上安装了node.js.
  5. 在服务器[https://www.hostinger.com/tutorials/how-to-install-git-on-ubuntu]
  6. 上安装了Git

    我找不到任何用于将node.js部署到Hostinger VPS的在线资源,因此我正在关注为DigitialOcean编写的资源。

    我遵循的一个教程是:https://code.tutsplus.com/tutorials/setting-up-continuous-integration-continuous-deployment-with-jenkins--cms-21511

    我克隆了我的存储库:

    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 - >这就是我的申请。

    如何将其更改为指向域?

1 个答案:

答案 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