Cara menghosting aplikasi Node.Js di shared hosting
Saya ingin menghosting aplikasi node.js di shared hosting. Apakah ada yang punya referensi atau dokumentasi untuk dirujuk?
Cara menghosting aplikasi Node.Js di shared hosting
Saya ingin menghosting aplikasi node.js di shared hosting. Apakah ada yang punya referensi atau dokumentasi untuk dirujuk?
Jawaban:
Anda dapat menjalankan server node.js pada hosting bersama biasa dengan Linux, Apache, dan PHP (LAMP). Saya telah berhasil menginstalnya, bahkan dengan NPM, Express dan Grunt berfungsi dengan baik. Ikuti langkah-langkahnya:
1) Buat file PHP baru di server dengan kode berikut dan jalankan:
<?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) Cara yang sama menginstal aplikasi node Anda, misalnya jt-js-sample, menggunakan npm:
<?php
exec('node/bin/npm install jt-js-sample');
3) Jalankan aplikasi node dari 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);
Voila! Lihat demo aplikasi node di hosting bersama PHP .
EDIT: Saya memulai proyek Node.php di GitHub .
Hubungkan dengan SSH dan ikuti petunjuk ini untuk menginstal Node di shared hosting
Singkatnya, Anda menginstal NVM terlebih dahulu, lalu menginstal versi Node pilihan Anda dengan NVM.
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
Anda restart shell Anda (tutup dan buka kembali sesi Anda). Maka kamu
nvm install stable
untuk menginstal versi stabil terbaru misalnya. Anda dapat menginstal versi apa pun pilihan Anda. Periksa node --version
versi node yang Anda gunakan saat ini dan nvm list
untuk melihat apa yang telah Anda instal.
Sebagai bonus, Anda dapat mengganti versi dengan sangat mudah ( nvm use <version>
)
Tidak perlu PHP atau solusi rumit apa pun jika Anda memiliki SSH.
nvm:command not found
Anda dapat menjalankan ini: perintahsource ~/.nvm/nvm.sh
Saya menginstal Node.js di bluehost.com (server bersama) menggunakan:
wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node
Ini akan mengunduh file tar, mengekstrak ke direktori dan kemudian mengganti nama direktori itu menjadi nama 'node' agar lebih mudah digunakan.
kemudian
./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)
Saya sekarang dapat menggunakan perintah:
# ~/node/bin/node -v
v0.12.4
# ~/node/bin/npm -v
2.10.1
Untuk alasan keamanan, saya telah mengganti nama direktori node saya menjadi yang lain.
npm start
di jt-js-sample
dan saya pergi ke mysite.com:5000 tetapi dikatakan halaman tidak tersedia. Apakah saya harus pergi ke alamat IP?
A2 Hosting mengizinkan node.js di akun hosting bersama mereka. Saya dapat menjamin bahwa saya memiliki pengalaman yang positif dengan mereka.
Berikut adalah instruksi di KnowledgeBase mereka untuk menginstal node.js menggunakan Apache / LiteSpeed sebagai reverse proxy: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- akun-hosting . Diperlukan sekitar 30 menit untuk menyiapkan konfigurasi, dan ini akan berfungsi dengan npm, Express, MySQL, dll.
Lihat a2hosting.com.
Anda harus mencari perusahaan hosting yang menyediakan fitur seperti itu, tetapi hosting statis + PHP + MySQL standar sederhana tidak mengizinkan Anda menggunakan node.js.
Anda perlu mencari hosting yang dirancang untuk node.js atau membeli Virtual Private Server dan menginstalnya sendiri.