web-dev-qa-db-ja.com

Godaddy共有ウェブホスティングを持っています。node.jsウェブサイトをホストする必要があります。サイトをホストできますか?

Godaddyにノードサーバーをインストールする方法について、サイトまたはリファレンスをホストすることは誰でも考えています。完全なCpanelを提供するGodaddy共有ホスティングがあり、この共有ホスティングをカスタマイズしようとしています。従う手順は何ですか?Cpanel設定で編集してこの種のホスティングをカスタマイズできますか?

8
Bhavik Limbani

はい、これは可能です。どういうわけか、私は誰かが実際にこの質問に正しく答えるのを見たことがありません。これは、最も基本的な共有ホスティングプランで機能します。私はそれをいくつかの異なる方法でうまく設定することができました。 秒はおそらくあなたが望むものだと思います

1。 cgi-nodehttp://www.cgi-node.org/home

基本的に、これはランプスタックのPHPを置き換えます。PHPを実行するのと同じようにノードを介してjavascriptを実行できます。これはノード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/ 。共有ホスティングはおそらくLinux64ビットです。これは、LinuxまたはUNIXで次のコマンドを実行して確認できます。

uname -a

Linuxバイナリをダウンロードし、ダウンロードからbin/node(およびサーバーでnpmを使用する場合はbin/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などを使用するのではなく、長期的には大幅なコスト削減になります。

7
nebulr

はい、これは最も安価な共有ホスティング層でも可能です。 @nebulrの指示は正しいです。これは私のような初心者のために少し更新され拡張されたバージョンです。

(1)共有ホスティングアカウントでSSHを有効にします:

GoDaddyホスティングにログインし、SSHアクセスをオンにします(ダッシュボードでは、右下の[設定]にあります)。 cPanelのログインユーザー名をメモし、覚えていない場合はパスワードを変更してください。 CPanelの[セキュリティ]と[SSHアクセス]でキーを作成する必要がある場合もあることに注意してください。

(2)nodejsプログラム自体をインストールします:

Node.jsバイナリを https://nodejs.org/en/download/ からダウンロードします。 Linux x64バージョン(直接リンク https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz

この.tarファイルをコンピューターで解凍し、内部でbinフォルダーを探します(Macでは、次のようなプログラムが必要になる場合があります)。解凍するUnarchiver)。 binフォルダーには、約40Mbの「ノード」というファイルがあります。この「ノード」ファイルは、このパッケージで使用する唯一のものです。

CPanelファイルマネージャーまたはFTPプログラムを使用して、サーバー上に_/home/yourUserName/_に「bin」というフォルダーを作成し、755のアクセス許可を付与します。 。 これは_public_html_の内部ではないことに注意してください。

「ノード」ファイルを_/home/yourusername/bin/_にアップロードします

(3)単純なnodejsスクリプトを作成します:

テキストエディタ(Sublimeなど)を開き、「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}/');
});
_

これは https://nodejs.org/en/docs/guides/getting-started-guide/ の基本的なサーバーアプリにすぎないことに注意してください

CPanelファイルマネージャーまたはFTPプログラムを開き、app.jsファイルを_/home/yourusername/public_html/_にアップロードします。

(4).htaccessファイルを変更します:

FTPプログラムを使用して、次の行を.htaccessファイルに追加します。

_RewriteEngine on
RewriteRule (.*) http://localhost:3000/$1 [P,L]
_
.htaccessファイルはデフォルトではおそらく空白であることに注意してください。また、勇敢な場合や1337の場合は、SSHでnano、vim、またはemacsを使用して.htaccessファイルを編集できることにも注意してください。


(5)ノードサーバーを起動します:

PuTTY(Windows)またはターミナル(Mac)を開き、コマンドラインタイプで_ssh [email protected]_(ユーザー名はホスティングアカウントのcPanelログインです)サーバーは、cPanelログインパスワードを入力する場所である_[email protected]'s password:_で応答する必要があります。

注:サーバーへのSSHを初めて使用する場合は、次のメッセージが表示されます。The authenticity of Host 'X.X.X.X' can't be established. RSA key fingerprint is XXXX. Are you sure you want to continue connecting (yes/no)? yesと入力して、続行します。

_/home/yourUserName/public_html/_と入力して、_cd public_html_に移動します。次のように入力して、ノードサーバースクリプトを開始します。_node app.js &_数秒後に次のメッセージが表示されます:_Server running at http://127.0.0.1:3000/_

(6)チェックしてください:

Webブラウザーを開き、WebサイトのURLを入力します。 _NodeJS server running on Shared Hosting_というテキストまたは上記のapp.jsの9行目に入力したメッセージを含む白いページが表示されます。 共有ホスティングアカウントではIPアドレスを使用できないことに注意してください。ドメイン名を使用する必要があります。

2
x.g.

これを行うもう1つの方法は、NVMを使用することです。まず、SSHを使用してサーバーに接続します。次に、bashスクリプトを介してNVMをインストールできるcurlコマンドがあります。

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

私にとって、2つの追加のステップが必要でした:

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

出典:

2
SimonW

ホストノードアプリには2つの選択肢があります。 -godaddyやdigitaloceanなどから独自のVPSサーバーを購入します。-Godaddy自体がノードインスタンスを実行するオプションを提供します。参照してください https://in.godaddy.com/pro/one-click-installation/node-js

1
Manish Singh

複数のドメインを持つgodaddy共有ホスティングにノードをインストールしました:

  1. GodaddyサーバーへのSSH

  2. ホームフォルダにnvmをインストールします

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash  
    
  3. nvm install 10.14.0(または優先ノードバージョン)注:$nvm --versionの実行中にnvmコマンドが見つからない場合は、SSHターミナルを閉じて再起動してください。

  4. ノードアプリを実行するサイトのフォルダーに、.httaccessファイルを追加します

    ~/public_html/site folder/.htaccess
    

    RewriteEngineオン

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

注:.htaccessを使用すると、個々のフォルダーをターゲットにすることができ、サーバーを再起動しなくても変更がすぐに有効になります。

  1. @nebulrが示すように、サイトフォルダーでapp.jsまたはノードサーバーを実行します

    $node app.js &
    
1
Roman Brito

@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]
1
aGuyInLasVegas