共有ホスティングでNode.Jsアプリケーションをホストする方法
共有ホスティングでnode.jsアプリケーションをホストしたい。参照するリファレンスやドキュメントはありますか?
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)同様に、ノードアプリをインストールします。 jpm-js-sample、npmを使用:
<?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共有ホスティングのノードアプリのデモ をご覧ください。
EDIT:私は GitHubのNode.phpプロジェクト を開始しました。
SSHで接続し、次の手順に従います 共有ホストにNodeをインストールする手順
つまり、最初にNVMをインストールしてから、選択したNodeバージョンをNVMでインストールします。
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
シェルを再起動します(セッションを閉じて再度開きます)。次にあなた
nvm install stable
たとえば、最新の安定バージョンをインストールします。任意のバージョンをインストールできます。現在使用しているノードのバージョンについてはnode --version
を、インストール済みのものについてはnvm list
を確認してください。
ボーナスでは、バージョンを非常に簡単に切り替えることができます(nvm use <version>
)
PHPまたはSSHを使用している場合はトリッキーな回避策は必要ありません。
次を使用して、bluehost.com(共有サーバー)にNode.jsをインストールしました。
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 [email protected]: wanted: {"node":"0.10.x"} (current: {"node":"0.12.4","npm":"2.10.1"})
[email protected] node_modules/jt-js-sample
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
コマンドを使用できます:
# ~/node/bin/node -v
v0.12.4
# ~/node/bin/npm -v
2.10.1
セキュリティ上の理由から、ノードディレクトリの名前を別の名前に変更しました。
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を参照してください。
そのような機能を提供するホスティング会社を探す必要がありますが、標準のシンプルな静的+ PHP + MySQLホスティングではnode.jsを使用できません。
Node.js用に設計されたホスティングを見つけるか、 Virtual Private Server を購入して自分でインストールする必要があります。