Як розмістити додаток Node.Js у спільному хостингу
Я хочу розмістити додаток node.js у спільному хостингу. У когось є посилання або документація, на яку слід посилатися
Як розмістити додаток Node.Js у спільному хостингу
Я хочу розмістити додаток node.js у спільному хостингу. У когось є посилання або документація, на яку слід посилатися
Відповіді:
Ви можете запустити сервер node.js на типовому спільному хостингу з Linux, Apache та PHP (LAMP). Я успішно встановив його, навіть якщо 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) Таким же чином встановіть додаток для вузла, наприклад 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 .
EDIT: Я запустив проект Node.php на GitHub .
Підключіться до 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.
nvm:command not found
, можете запустити це: командаsource ~/.nvm/nvm.sh
Я встановив 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
З міркувань безпеки я перейменував свій каталог вузлів на щось інше.
npm start
у, jt-js-sample
і я перейшов до mysite.comwhat000, але на ньому написана сторінка недоступна. Чи потрібно замість цього перейти до IP-адреси?
Хостинг A2 дозволяє node.js на своїх спільних хостинг-акаунтах. Я можу поручити, що у мене був позитивний досвід з ними.
Ось інструкції з їхньої знання про встановлення node.js за допомогою Apache / LiteSpeed як зворотного проксі: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed- хостинг-рахунки . Для налаштування конфігурації потрібно близько 30 хвилин, і вона працюватиме з npm, Express, MySQL тощо.
Дивіться a2hosting.com.
Вам слід шукати хостингову компанію, яка надає таку функцію, але стандартний простий статичний + PHP + MySQL хостинг не дозволить вам використовувати node.js.
Вам потрібно або знайти хостинг, призначений для node.js, або придбати віртуальний приватний сервер та встановити його самостійно.