Node.Js uygulamasını paylaşılan bir barındırmada barındırma
Paylaşılan barındırmada bir node.js uygulamasını barındırmak istiyorum. Başvuracak herhangi bir referans veya belge olan var mı?
Node.Js uygulamasını paylaşılan bir barındırmada barındırma
Paylaşılan barındırmada bir node.js uygulamasını barındırmak istiyorum. Başvuracak herhangi bir referans veya belge olan var mı?
Yanıtlar:
Sen edebilirsiniz Linux, Apache ve PHP (LAMP) ile barındırma paylaşılan tipik üzerinde node.js sunucuyu çalıştırın. NPM, Express ve Grunt iyi çalışıyor olsa bile onu başarıyla kurdum. Adımları takip et:
1) Aşağıdaki kodla sunucuda yeni bir PHP dosyası oluşturun ve çalıştırın:
<?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) Düğüm uygulamanızı aynı şekilde yükleyin, örneğin npm kullanarak jt-js-sample:
<?php
exec('node/bin/npm install jt-js-sample');
3) Düğüm uygulamasını PHP'den çalıştırın:
<?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);
İşte bu kadar! PHP paylaşılan barındırmada bir düğüm uygulamasının demosuna bir göz atın .
DÜZENLEME: GitHub'da bir Node.php projesi başlattım .
SSH ile bağlanın ve Node'u paylaşılan bir barındırmaya yüklemek için bu talimatları izleyin
Kısacası önce NVM'yi kurarsınız, ardından seçtiğiniz Node sürümünü NVM ile kurarsınız.
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
Kabuğunuzu yeniden başlatın (oturumlarınızı kapatın ve yeniden açın). O zaman sen
nvm install stable
örneğin en son kararlı sürümü yüklemek için. İstediğiniz herhangi bir sürümü kurabilirsiniz. node --version
Şu anda kullanmakta olduğunuz düğüm sürümünü kontrol edin ve nvm list
ne yüklediğinizi görün.
Bonus olarak sürümü çok kolay bir şekilde değiştirebilirsiniz ( nvm use <version>
)
SSH'niz varsa PHP'ye veya herhangi bir karmaşık çözüme gerek yoktur.
nvm:command not found
çalıştırabilirsin: commandsource ~/.nvm/nvm.sh
Node.js'yi bluehost.com'a (paylaşılan bir sunucu) kullanarak kurdum:
wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> node
Bu, tar dosyasını indirir, bir dizine çıkartır ve daha sonra kullanımı kolaylaştırmak için bu dizini 'node' adıyla yeniden adlandırır.
sonra
./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)
Artık komutları kullanabilirim:
# ~/node/bin/node -v
v0.12.4
# ~/node/bin/npm -v
2.10.1
Güvenlik nedenleriyle düğüm dizinimi başka bir adla yeniden adlandırdım.
npm start
de jt-js-sample
ben mysite.com:5000 gitti ama sayfa mevcut değildir söyledi. Bunun yerine IP adresine gitmem gerekiyor mu?
A2 Hosting, paylaşılan barındırma hesaplarında node.js'ye izin verir. Onlarla olumlu bir deneyim yaşadığımı garanti edebilirim.
Ters proxy olarak Apache / LiteSpeed kullanarak node.js'yi yüklemek için KnowledgeBase'lerinde talimatlar: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- barındırma hesapları . Yapılandırmayı kurmak yaklaşık 30 dakika sürer ve npm, Express, MySQL vb. İle çalışır.
A2hosting.com adresine bakın.
Bu özelliği sağlayan bir barındırma şirketi aramalısınız, ancak standart basit statik + PHP + MySQL barındırma node.js kullanmanıza izin vermez.
Ya node.js için tasarlanmış bir barındırma bulmanız ya da bir Sanal Özel Sunucu satın alıp kendiniz yüklemeniz gerekir.