Как разместить приложение 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) Аналогичным образом установите приложение node, например. jt-js-sample, используя npm:
<?php
exec('node/bin/npm install jt-js-sample');
3) Запустите приложение node из 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! Посмотрите демонстрацию приложения node на общедоступном хостинге 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
для версии Node, которую вы используете в настоящее время, и nvm list
, чтобы узнать, что вы установили.
В бонусе вы можете легко переключать версию (nvm use <version>
)
Нет необходимости в PHP или любом сложном обходном пути, если у вас есть SSH.
Я установил 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 [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
Из соображений безопасности я переименовал каталог node в другое.
Хостинг A2 разрешает node.js для своих учетных записей общего хостинга. Я могу ручаться, что у меня был положительный опыт с ними.
В своей базе знаний приведены инструкции по установке node.js с использованием Apache/LiteSpeed в качестве обратного прокси-сервера: https://www.a2hosting.com/kb/installable-applications/manual-installations/install-node-js-on-managed- хостинг-аккаунты. Настройка конфигурации занимает около 30 минут, и она будет работать с npm, Express, MySQL и т.д.
Смотрите a2hosting.com.
Вам следует искать хостинговую компанию, которая предоставляет такую функцию, но стандартный простой статический + PHP + хостинг MySQL не позволит вам использовать node.js.
Вам нужно либо найти хостинг, предназначенный для node.js, либо купить Virtual Private Server и установить его самостоятельно.