साझा होस्टिंग में Node.Js एप्लिकेशन की मेजबानी कैसे करें [बंद]


110

साझा होस्टिंग में Node.Js एप्लिकेशन को कैसे होस्ट करें

मैं साझा होस्टिंग में नोड.जेएस एप्लिकेशन को होस्ट करना चाहता हूं। क्या किसी को संदर्भित करने के लिए कोई संदर्भ या प्रलेखन है?


जिस तरह से मैंने npm बिल्ड चलाकर यह पता लगाया है कि जेएस फाइलें उत्पन्न होंगी जिन्हें आप छोटा कर सकते हैं और फिर अपने स्क्रिप्ट टैग में शामिल कर सकते हैं। उदाहरण जब vuejs या यहां तक ​​कि angular2 cli के साथ निर्माण हो रहा है
ज्योफ

1
यह काम किया - शर्म की बात है कि मैं एक जवाब पोस्ट नहीं कर सकता ... a2hosting.com/kb/installable-applications/manual-installations/…
eddyparkinson

1
@ डैन-कॉर्निलेस्कु को फिर से खोला जा सकता है। यह मूल्यवान है। सुपरसुसर में बेहतर होगा। एक जवाब भी मिला कि मैं जोड़ना चाहूंगा।
१inson पर eddyparkinson

नोड और एनपीएम स्थापित करने वाले अधिकांश साझा होस्ट विफल होंगे (CentOS समर्थित नहीं); यहाँ एक समाधान है (Node v6.2.2 का उपयोग करके) - medium.com/@yatko/…
Yatko

जवाबों:


158

आप Linux, Apache और PHP (LAMP) के साथ एक विशिष्ट साझा होस्टिंग पर नोड.जेएस सर्वर चला सकते हैं। मैंने इसे सफलतापूर्वक स्थापित किया है, यहां तक ​​कि एनपीएम, एक्सप्रेस और ग्रंट के साथ भी ठीक काम कर रहा है। उनके नक़्शे - कदम पर चलिए:

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) उसी तरह अपना नोड ऐप इंस्टॉल करें, जैसे कि jt-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 साझा होस्टिंग पर एक नोड एप्लिकेशन के डेमो पर एक नजर है ।

संपादित करें: मैंने GitHub पर एक Node.php परियोजना शुरू की ।


2
और स्थापित mongoDB भी?
जैकी

3
@ जस्की यह संभव होना चाहिए क्योंकि मोंगोडब को जड़ की आवश्यकता नहीं है। बस मैनुअल इंस्टॉल गाइड का पालन करें ।
niutech

3
यह कोशिश नहीं की है, लेकिन सिर्फ सुंदर लग रहा है !!! ... अच्छा काम
गेब्रियल रोड्रिगेज

2
आपको सलाह दी जाती है कि आप डाउनलोड यूआरएल को तदनुसार अपडेट करेंगे
जोओ पिमेंटेल फरेरा

5
नोड। एफपी बहुत अच्छा है!
हेमंत शर्मा

51

SSH के साथ कनेक्ट करें और साझा होस्टिंग पर नोड स्थापित करने के लिए इन निर्देशों का पालन करें

संक्षेप में आप पहले एनवीएम स्थापित करते हैं, फिर आप एनवीएम के साथ अपनी पसंद के नोड संस्करण को स्थापित करते हैं।

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 के साथ त्रुटि नहीं मिली है, तो आप stackoverflow.com/a/33874050/328117 की कोशिश करें
vinyll

अधिकांश साझा होस्टिंग प्रदाता एसएसएच एक्सेस नहीं देते हैं। कम से कम मेरा नहीं।
coder.in.me

4
पूरी तरह से काम किया !! धन्यवाद
डेविन नोरगर्ब

2
@SyamsoulAzrien अगर आपको मिल गया nvm:command not foundतो आप इसे चला सकते हैं: कमांडsource ~/.nvm/nvm.sh
हंस टियो

12

मैंने उपयोग करते हुए bluehost.com (एक साझा सर्वर) पर Node.js स्थापित किया:

wget <path to download file>
tar -xf <gzip file>
mv <gzip_file_dir> 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 .000 पर गया, लेकिन इसने कहा कि पेज उपलब्ध नहीं है। क्या मुझे इसके बजाय आईपी पते पर जाने की आवश्यकता है?
zachdyer

वह बंदरगाह संभवतः अवरुद्ध है, आपको मानक 80 बंदरगाह का उपयोग करना चाहिए
रिकार्डो

~ / नोड / बिन / npm -v मुझे एक त्रुटि कहती है: नोटिफ़ायर = आवश्यकता ('अपडेट-नोटिफायर') ({pkg}) SyntaxError: Export.runInThisConCxtxt (vm.js: 69: 16) पर मॉड्यूल में अप्रत्याशित पहचानकर्ता । मॉड्यूल (मॉड्यूल .js: 432: 25) Object.Module._extensions..js (मॉड्यूल.js: 467: 10) पर Module.load (मॉड्यूल.js: 349: 32) फ़ंक्शन में। मॉड्यूल (लोड) .js: 305: 12) फंक्शन पर.मॉडल.रुमन (मॉड्यूल। जेएस: 490: 10) स्टार्टअप पर (नोड.जेएस: 123: 16) नोड पर। जेएस: 1027: 3
कोडिनप्रोग्रेस

10

A2 होस्टिंग अपने साझा होस्टिंग खातों पर नोड.जेएस की अनुमति देता है। मैं यह कह सकता हूं कि मुझे उनके साथ एक सकारात्मक अनुभव मिला है।

यहाँ उनके नॉलेजबेस में निर्देश हैं। Apache / LiteSpeed ​​का उपयोग कर रिवर्स प्रॉक्सी के रूप में नोड स्थापित करने के लिए। https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- होस्टिंग-खाते । कॉन्फ़िगरेशन सेट करने में लगभग 30 मिनट लगते हैं, और यह npm, Express, MySQL आदि के साथ काम करेगा।

A2hosting.com देखें।


1
धन्यवाद! मुझे इसकी ही खोज थी।
पेड्रो फेरेरा

लगभग दो साल बाद, A2 होस्टिंग अभी भी बहुत कम होस्टिंग प्रदाताओं में से एक है जो आधिकारिक रूप से अपने साझा सर्वर पर Node.js का समर्थन कर रहा है। हाल ही में शुरू किया गया एक गाइड यहां
दल्ली

1
साझा नोड js होस्टिंग योजना पर प्रतिक्रिया और फ्रंट एंड अच्छी तरह से चलता है? किसी भी विचार
समिट शाह

उसी पर एक ब्लॉग लिखा। medium.com/@pampas93/…
अभिजीत एस

2

आपको एक होस्टिंग कंपनी की तलाश करनी चाहिए जो इस तरह की सुविधा प्रदान करती है, लेकिन मानक सरल स्थिर + PHP + MySQL होस्टिंग आपको नोड का उपयोग नहीं करने देगी।

आपको या तो नोड.जेएस के लिए डिज़ाइन किया गया एक होस्टिंग ढूंढना होगा या वर्चुअल प्राइवेट सर्वर खरीदना होगा और इसे स्वयं इंस्टॉल करना होगा।


क्या आपका मतलब यह है कि साझा होस्टिंग का उपयोग करके Node.js एप्लिकेशन को होस्ट करना संभव नहीं है
सोमेश 16'14

3
@ समोमेश यह संभव है - मेरा उत्तर देखें।
1

यह एक अच्छी चाल है, हालांकि ध्यान रखें कि बहुत से साझा किए गए होस्टिंग प्रदाता इस प्रक्रिया को मार देंगे और इसे साझा होस्टिंग खाते का दुरुपयोग
टिआगो

@niutech ने कहा कि तकनीकी रूप से संभव है, लेकिन मैं निश्चित रूप से इसे उत्पादन सुरक्षित नहीं मानूंगा, अन्य सहकर्मी (एक से अधिक उपयोगकर्ता का उल्लेख नहीं कर सकते हैं) सही है, मेरा मानना ​​है कि अधिकांश होस्टिंग प्रदाता नोड प्रक्रिया को मार देंगे या आप प्रोसेसर चक्र समय से बाहर चले जाएंगे बहुत जल्द
Marek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.