24

任何人都有关于如何在 Godaddy 上安装节点服务器的想法或参考。我们有 Godaddy 共享主机,它提供完整的 Cpanel 并希望自定义此共享主机。要遵循的步骤是什么?我们是否可以通过在 Cpanel 设置中进行编辑来自定义这种托管?

我曾尝试托管 Node.js 网站,但无法启动并运行它显示的是纯 HTML 编码的网站,而不是用户界面。

4

6 回答 6

31

是的,这是可能的。不知何故,我从未见过有人真正正确地回答了这个问题。这适用于最基本的共享托管计划。我已经成功地设置了几种不同的方式。我认为第二个可能是您想要的:

1. cgi-node http://www.cgi-node.org/home

基本上这取代了灯栈上的 PHP。您可以像运行 PHP 一样通过节点运行 javascript。这与 node js 具有所有相同的功能,但仅适用于模板渲染。

    <html>
    <body>
     <?
       var helloWorld = 'Hello World!'; 
       write(helloWorld + '<br/>'); 
     ?>
     <?= helloWorld ?>
    <br/>
    <b>I can count to 10: </b>

    <?
      for (var index= 0; index <= 10; index++) write(index + ' ');  
    ?>
      <br/>
      <b>Or even this: </b>
    <?  
      for (var index= 0; index <= 10; index++) { 
    ?>
        <?= index ?> 
    <? } ?>

    </body>
</html>

或者

2. 独立服务器(这适用于 NameCheap 主机和 GoDaddy 共享主机)

在您的共享主机帐户中,您需要 SSH 才能执行此操作。因此,您可能需要升级或向他们的客户支持请求 SSH 访问权限。下载最新的 NodeJS https://nodejs.org/en/download/。共享主机可能是 linux 64 位。您可以通过运行在 linux 或 unix 上进行检查:

uname -a

下载 Linux 二进制文件并将 bin/node(以及 bin/npm 文件,如果你想在服务器上使用 npm)文件从 /home/username/bin/ 中下载(如果 bin 文件夹不存在,则创建它) 在服务器上。将权限 755 放在节点二进制文件上。所以你应该在这里有一个新文件:

/home/username/bin/node

打开 /home/username/public_html 中的 .htaccess 文件并添加以下行:

RewriteEngine on
RewriteRule  (.*)  http://localhost:3000/$1  [P,L] 

在 /home/username/public_html 中创建一个文件并将其命名为 app.js。在该文件中添加以下行:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('NodeJS server running on Shared Hosting\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

SSH 进入服务器运行以下命令:

cd /home/username/public_html
which node # this should return ~/bin/node
node app.js & # This will create a background process with the server running

如果您可以正确设置此设置,从长远来看,这将为您节省大量资金,而不是使用 AWS 或 Heroku 等。

于 2017-02-14T19:43:05.603 回答
26
于 2019-01-10T02:19:21.753 回答
4

我通过以下方式在 Godaddy 共享主机上安装了多个域的节点:

  1. SSH到godaddy服务器

  2. 在主文件夹中安装 nvm

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash  
    
  3. nvm install 10.14.0 (或首选节点版本)注意:如果您在执行时遇到 nvm command not found $nvm --version,只需关闭并重新启动 SSH 终端

  4. 在要运行节点应用程序的站点的文件夹中,添加.httaccess文件

    ~/public_html/site folder/.htaccess
    

    重写引擎开启

    RewriteRule (.*) http://localhost:3000/$1 [P,L]
    

注意:.htaccess可用于定位单个文件夹,更改立即生效,无需重新启动服务器。

  1. 如@nebulr 所示,在站点文件夹中运行您的 app.js 或节点服务器

    $node app.js &
    
于 2018-11-29T21:39:18.967 回答
3

另一种方法是通过 NVM。首先使用 SSH 连接到您的服务器。然后有一个 curl 命令允许您通过 bash 脚本安装 NVM:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

对我来说,还需要两个额外的步骤:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

资料来源:

于 2018-08-30T12:24:03.003 回答
1

您有两种选择来托管节点应用程序。- 从 godaddy 或 digitalocean 等处购买您自己的 VPS 服务器。 - Godaddy 本身提供运行其节点实例的选项。请参考https://in.godaddy.com/pro/one-click-installation/node-js

于 2016-10-20T05:29:05.590 回答
1

正如@nebuir 所说,可以使用 GoDaddy 的共享主机选项运行您的 node.js 开发的应用程序,因为我刚刚这样做了。.htaccess 部分是完成这项工作的关键。我需要添加的唯一另一行是

RewriteRule ^index.html.var$ http://www.yoursite.com:3000/$1 [L,P,QSA]

RewriteRule  (.*)  http://www.yoursite.com:3000/$1  [P,L]
于 2018-05-06T01:21:41.633 回答