共有ホスティングでNode.Jsアプリケーションをホストする方法[終了]


110

共有ホスティングでNode.Jsアプリケーションをホストする方法

共有ホスティングでnode.jsアプリケーションをホストしたい。誰かが参照するリファレンスやドキュメントを持っていますか?


npm buildを実行して計算した方法では、縮小してからスクリプトタグに含めることができるjsファイルが生成されます。vuejsまたはangular2 cliを使用してビルドする場合の例
Geoff

1
これは働いていた-私は答えを投稿することができない恥... a2hosting.com/kb/installable-applications/manual-installations/...を
eddyparkinson

1
@ Dan-Cornilescuを再度開くことができます。貴重です。スーパーユーザーの方がいいでしょう。追加したい回答も見つかりました。
エディパーキンソン2018年

ほとんどの共有ホストでは、ノードとNPMのインストールは失敗します(CentOSはサポートされていません)。ここで(ノードV6.2.2を使用して)ソリューションです- medium.com/@yatko/...は
Yatko

回答:


158

あなたはできるのLinux、ApacheとPHP(LAMP)と共有ホスティング典型的にNode.jsのサーバーを実行します。NPM、Express、Gruntが正常に動作していても、インストールに成功しました。手順に従ってください:

1)次のコードを使用してサーバー上に新しいPHPファイルを作成し、実行します。

<?php
//Download and extract the latest node
exec('curl http://nodejs.org/dist/latest/node-v0.10.33-linux-x86.tar.gz | tar xz');
//Rename the folder for simplicity
exec('mv node-v0.10.33-linux-x86 node');

2)npmを使用して、jt-js-sampleなどのノードアプリを同じ方法でインストールします。

<?php
exec('node/bin/npm install jt-js-sample');

3)PHPからノードアプリを実行します。

<?php
//Choose JS file to run
$file = 'node_modules/jt-js-sample/index.js';
//Spawn node server in the background and return its pid
$pid = exec('PORT=49999 node/bin/node ' . $file . ' >/dev/null 2>&1 & echo $!');
//Wait for node to start up
usleep(500000);
//Connect to node server using cURL
$curl = curl_init('http://127.0.0.1:49999/');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//Get the full response
$resp = curl_exec($curl);
if($resp === false) {
    //If couldn't connect, try increasing usleep
    echo 'Error: ' . curl_error($curl);
} else {
    //Split response headers and body
    list($head, $body) = explode("\r\n\r\n", $resp, 2);
    $headarr = explode("\n", $head);
    //Print headers
    foreach($headarr as $headval) {
        header($headval);
    }
    //Print body
    echo $body;
}
//Close connection
curl_close($curl);
//Close node server
exec('kill ' . $pid);

出来上がり!見ているPHPのノードアプリのデモは、共有ホスティング

編集:GitHubでNode.phpプロジェクトを開始しました。


2
そしてmongoDBもインストールしていますか?
jsky 2015年

3
@jsky mongodbはrootを必要としないので、それは可能であるべきです。手動インストールガイドに従ってください
niutech 2015年

3
試したことはありませんが、見た目は美しい!!! ...良い仕事
ガブリエルロドリゲス

2
あなたが更新するものと忠告され、ダウンロードURLをそれに応じて
ジョアン・ピメンテル・フェレイラ

5
node.phpは非常に優れています。
Hemant Sharma

51

SSHで接続し、以下の手順に従って、共有ホスティングにノードをインストールします

つまり、最初にNVMをインストールしてから、NVMで選択したノードバージョンをインストールします。

wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash

シェルを再起動します(セッションを閉じて再度開きます)。次にあなた

nvm install stable

たとえば、最新の安定バージョンをインストールします。任意のバージョンをインストールできます。node --version現在使用しnvm listているノードのバージョンを確認し、インストールしたものを確認します。

おまけで、非常に簡単にバージョンを切り替えることができます(nvm use <version>

SSHを使用している場合、PHPやその他の巧妙な回避策は必要ありません。


こんにちは、答えてくれてありがとう。問題が発生していますが、nvmを使用してインストールを実行すると、ノードが見つからないと表示されます。何か助けは?
アミットサクセナ2017年

たぶん、あなたは試してみてくださいstackoverflow.com/a/33874050/328117をあなたはその持っている場合はノードが見つからない NVMとエラー
vinyll

ほとんどの共有ホスティングプロバイダーはSSHアクセスを提供しません。少なくとも私のものではありません。
coder.in.me 2017

4
完璧に動作しました!! ありがとう
Devin Norgarb

2
@SyamsoulAzrienあなたがnvm:command not foundこれを実行できる場合:コマンドsource ~/.nvm/nvm.sh
Hans Tiono

12

Node.jsをbluehost.com(共有サーバー)にインストールしました。

wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node

これにより、tarファイルがダウンロードされ、ディレクトリに抽出されて、そのディレクトリの名前が「node」に変更され、使いやすくなります。

その後

./node/bin/npm install jt-js-sample

Returns:
npm WARN engine jt-js-sample@0.2.4: wanted: {"node":"0.10.x"} (current: {"node":"0.12.4","npm":"2.10.1"})
jt-js-sample@0.2.4 node_modules/jt-js-sample
└── express@4.12.4 (merge-descriptors@1.0.0, utils-merge@1.0.0, cookie-signature@1.0.6, methods@1.1.1, cookie@0.1.2, fresh@0.2.4, escape-html@1.0.1, range-parser@1.0.2, finalhandler@0.3.6, content-type@1.0.1, vary@1.0.0, parseurl@1.3.0, serve-static@1.9.3, content-disposition@0.5.0, path-to-regexp@0.1.3, depd@1.0.1, qs@2.4.2, on-finished@2.2.1, debug@2.2.0, etag@1.6.0, proxy-addr@1.0.8, send@0.12.3, type-is@1.6.2, accepts@1.2.7)

これでコマンドを使用できます:

# ~/node/bin/node -v
v0.12.4

# ~/node/bin/npm -v
2.10.1

セキュリティ上の理由から、ノードディレクトリの名前を別の名前に変更しました。


1
私は試してみnpm startましたjt-js-sampleが、mysite.com:5000にアクセスしましたが、ページが利用できないと表示されました。代わりにIPアドレスにアクセスする必要がありますか?
zachdyer 2015年

そのポートはおそらくブロックされています。標準の80ポートを使用する必要があります
RicardoE

〜/ node / bin / npm -vと言うエラーが表示されます:let notifier = require( 'update-notifier')({pkg})SyntaxError:Unexpected identifier at exports.runInThisContext(vm.js:69:16)at Module ._compile(module.js:432:25)at Object.Module._extensions..js(module.js:467:10)at Module.load(module.js:349:32)at Function.Module._load(module .js:305:12)at Function.Module.runMain(module.js:490:10)at startup(node.js:123:16)at node.js:1027:3
codeinprogress

10

A2ホスティングは、共有ホスティングアカウントでのnode.jsを許可します。私は彼らと前向きな経験をしたことを保証できます。

Apache / LiteSpeedをリバースプロキシとして使用してnode.jsをインストールするためのKnowledgeBaseの手順は次のとおりです。https//www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- hosting-accounts。設定には約30分かかり、npm、Express、MySQLなどで動作します。

a2hosting.comを参照してください。


1
ありがとうございました!まさに私が探していたもの。
ペドロフェレイラ

ほぼ2年後、A2ホスティングはまだ共有サーバーでNode.jsを公式にサポートしている数少ないホスティングプロバイダーの1つです。最近のスタートアップガイドを見つけることができ、ここで
Dalie

1
共有ノードのjsホスティングプランで反応し、フロントエンドは適切に動作しますか?任意のアイデア
Samkit Shah

同じ上にブログを書いた。medium.com/@pampas93/...
Abhijit S

2

そのような機能を提供するホスティング会社を探す必要がありますが、標準の単純な静的+ PHP + MySQLホスティングではnode.jsを使用できません。

node.js用に設計されたホスティングを見つけるか、Virtual Private Serverを購入して自分でインストールする必要があります。


共有ホスティングを使用してNode.jsアプリケーションをホストすることはできないということですか
somesh

3
@someshそれは可能です-私の答えを見てください。
niutech 2014

キープを念頭に置いて、共有ホスティングプロバイダの多くは、このプロセスを強制終了し、それが共有ホスティングアカウントの誤用を検討するのにそれは...、クールなトリックだ
ティアゴ

@niutechが言ったように技術的には可能ですが、本番で安全だとは絶対に考えません。他の同僚(複数のユーザーについて言及することはできません)は正しいです。ほとんどのホスティングプロバイダーがノードプロセスを強制終了するか、プロセッサのサイクルタイムが不足すると思います間もなく
Marek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.