Установка Node.js
При первом подключении система спросит нужно ли добавлять IP в список доверенных хостов, необходимо ввести «yes», нажать «Enter», после чего ввести пароль. Если Вы копируете пароль из письма, отправленного Вам после заказа сервера, будьте внимательны и не скопируйте лишний пробел. Вот так будет выглядеть окно после подключения к серверу по SSH:

Установка Node.js на Centos
После того как мы подключились необходимо обновить репозиторий программ до последних версий с помощью следующей команды
yum -y update
Выполнение команды может занять несколько минут, отчет обо всех обновленных пакетах будет выводиться на экран. После выполнения команды мы получим отчет со списком всех обновленных, а также установленных пакетов.
Затем необходимо установить Development Tools. Это группа инструментов для компиляции ПО из исходного кода. Мы будем использовать следующую команду:
yum -y groupinstall "Development Tools"

По окончании мы также получим отчет о результатах выполнения команды со списком установленных пакетов.
Затем необходимо установить GNU screen для того, чтобы иметь возможность при подключении к ВПС иметь доступ к нескольким сессиям одновременно. Мы будем использовать следующую команду для установки:
yum -y install screen

После того, как мы подготовили систему к установке Node.js необходимо перейти в каталог, в котором вы будете хранить системные файлы. По умолчанию это src, перейти в него можно с помощью следующей команды:
cd /usr/src
после выполнения которой ваш терминал должен выглядеть следующим образом:
![]()
Затем необходимо скачать последнюю версию программы с помощью команды wget.
Чтобы получить необходимую нам ссылку на последнюю версию необходимо перейти на https://nodejs.org/en/download/ и в новой вкладке открыть ссылку «Source Code». Скачивать архив на свой компьютер не нужно, нас интересует только ссылка на него, которую мы скопируем из строки браузера. После этого необходимо выполнить следующую команду:
wget http://nodejs.org/dist/v4.2.2/node-v4.2.2.tar.gz

После скачивания архив необходимо распаковать с помощью этой команды:
tar zxf node-v4.2.2.tar.gz
После распаковки мы переходим в папку с установочными файлами, используя уже знакомую нам команду:
cd node-v4.2.2
Перед установкой необходимо подготовить команды компилятора используя
./configure
Если Вы получаете следующее уведомление:
![]()
значит текущая версия Node.js несовместима с вашим компилятором, либо же архив был скачан не полностью, поэтому необходимо скачать другую версию или попробовать скачать текущую еще раз.
После подготовки компилятора необходимо скомпилировать исходный код с помощью команды
make
Компиляция может занять от 5 до 10 минут, если выполнение команды заняло меньше, внимательно прочитайте отчет, возможно произошла какая-то ошибка и компиляцию необходимо провести еще раз или скачать другую версию Node.js.
После завершения компиляции выполняем установку с помощью команды:
make install
Когда установка завершена на экран будет выведен путь, куда помещены конфигурационные файлы, по умолчанию это /usr/local/bin/node.
![]()
Установка Node.js на Debian/Ubuntu с помощью nvm
Для установки Node.js на Debian/Ubuntu лучше всего использовать инструмент nvm, так как с его помощью можно выбрать версию при установке.
Для начала необходимо обновить пакеты системы с помощью команды:
sudo apt-get update

Затем устанавливаем пакеты из репозиториев нашей ОС, которые позволяют собирать пакеты из исходников, используя данную команду:
sudo apt-get install build-essential libssl-dev
Во время установки на Debian система может попросить подтвердить, что Вы готовы использовать дополнительное место на диске, необходимо ввести «yes» и нажать «Enter»

Затем устанавливаем NVM c помощью следующей команды:
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

После установки NVM нам нужно будет перелогиниться в систему либо же обновить данные с помощью команды
source ~/.profile
После того, как данные о системе обновлены необходимо узнать доступные версии Node.js с помощью команды
nvm ls-remote

Выбираем из списка нужную нам версию и используем команду для установки
nvm install 5.1.0

После установки эта версия будет использоваться по умолчанию. Если на вы установили на сервере несколько версий, то для того, чтобы указать системе какую версию необходимо использовать применяем следующую команду:
nvm use 5.1.0
По умолчанию исполняемый файл Node.js вызывется командой
Настройка Node.js
В статье будет рассмотрена настройка Node.JS.
Обратите внимание!
Если вы хотите запустить веб-приложение, но еще не создали сайт — сначала необходимо создать сайт и прикрепить к нему домен в разделе Сайты. Лучше всего имя сайта указывать аналогично желаемому доменному имени — в противном случае в будущем могут возникнуть трудности с пониманием файловой структуры.
Если у вас еще нет доменного имени, его можно добавить или зарегистрировать в разделе Домены.
После того, как сайт создан и к нему прикреплён домен, направленный на наши NS сервера, можно приступать к настройке.
Сначала необходимо подключится к аккаунту по протоколу SSH.
Подключение к аккаунту
Если Вы пользуетесь OS Windows, то, скорее всего, Вам подойдет SSH-клиент PuTTy (статью по настройке можно прочитать здесь). Когда настроите, можно переходить на шаг 2.
Если Вы пользуетесь OS Linux или OS X, подойдет обычный терминал, который присутствует во всех Unix-подобных операционных системах. Подключиться можно следующей командой:
$ ssh username@username.beget.tech
Где username — логин, username.beget.tech — адрес сервера (посмотреть его можно в блоке Техническая информация на главной странице панели управления).
Переход в Docker
Далее нужно перейти в виртуальное окружении Docker. Запуск Node.js осуществляется только внутри Docker контейнера. Для этого, после подключения по SSH необходимо ввести команду:
ssh localhost -p 222
А также ввести свой пароль для подключения к SSH. В строке терминала будет отображено, что теперь мы находимся в Docker окружении:
(docker) valkeru@oscar2: [0]~
На хостинге уже установлены Node.js и npm.
(docker) valkeru@oscar2:~ [0] $ node -v v8.12.0 (docker) valkeru@oscar2:~ [0] $ npm -v 6.4.1
Установка Node.js другой версии
Обратите внимание!
На данный момент, на виртуальном хостинге, максимальная поддерживаемая версия — 17.9.1. NodeJS версии 18.0 и выше работать не будет.
Учитывайте эту информацию при выборе версии.
Установка Node.js производится в каталог .local Вашей учётной записи:
valkeru@oscar2:~ [0] $ mkdir -p .local valkeru@oscar2:~ [0] $ cd .local
Обратите внимание!
Загружать нужно 64-разрядную версию, запуск исполняемых файлов для 32-битной архитектуры на наших серверах запрещён!
Загрузим дистрибутив и распакуем его:
valkeru@oscar2:~/.local [0] $ wget https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz --2019-06-26 02:46:01-- https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz Resolving nodejs.org. 104.20.23.46, 104.20.22.46, 2400:cb00:2048:1::6814:172e, . Connecting to nodejs.org|104.20.23.46|:443. connected. HTTP request sent, awaiting response. 200 OK Length: 11314172 (11M) [application/x-xz] Saving to: ‘node-v8.1.2-linux-x64.tar.xz’ node-v12.16.2-linux-x64.tar.xz 100%[==========================>] 10,79M 7,18MB/s in 1,5s 2019-06-26 02:46:04 (7,18 MB/s) - ‘node-v12.16.2-linux-x64.tar.xz’ saved [11314172/11314172] valkeru@oscar2:~/.local [0] $ tar xJf node-v12.16.2-linux-x64.tar.xz --strip 1 valkeru@oscar2:~/.local [0] $
Удалите загруженный дистрибутив:
valkeru@oscar2:~/.local [0] $ rm node-v12.16.2-linux-x64.tar.xz valkeru@oscar2:~/.local [0] $
Обратите внимание!
Поскольку сайты на учётных записях изолированы, для запуска Node.js из окружения веб-сервера потребуется открыть общий доступ к каталогу ~/.local.
Инструкция по предоставлению общего доступа приведена в этой статье.
Создание каталога проекта
Теперь нужно перейти в каталог сайта, в рассматриваемом примере имя каталога — node:
valkeru@oscar2:~ [0] $ cd ~/node
Необходимо создать каталог для проекта и вложенный в него каталог tmp, в рассматриваемом примере имя каталога — HelloWorld:
valkeru@oscar2:~/node [0] $ mkdir -p HelloWorld/tmp valkeru@oscar2:~/node [0] $
Для корректной отдачи статического контента средствами Nginx создается ссылка public, указывающая на public_html:
valkeru@oscar2:~/node [0] $ ln -s public_html public
С помощью любого текстового редактора (например, nano или vim) необходимо создать файл app.js в каталоге проекта HelloWorld со следующим содержимым:
var http = require('http'); var server = http.createServer(function(req, res) < res.writeHead(200, < 'Content-Type': 'text/plain' >); res.end('Hello World!'); >); server.listen(3000);
Далее, если вы находитесь в каталоге проекта HelloWorld, необходимо вернутся в каталог node
valkeru@oscar2:~/node/HelloWorld [0] $ cd ..
Создание .htaccess
Затем нужно создать файл .htaccess. В общем виде его содержимое выглядит следующим образом:
PassengerNodejs /home/первая буква логина/логин/.local/bin/node PassengerAppRoot /home/первая буква логина/логин/папка сайта/название_проекта PassengerAppType node PassengerStartupFile app.js
Если вы установили новую версию NodeJS, то .htaccess будет следующим:
PassengerNodejs /home/v/valkeru/.local/bin/node PassengerAppRoot /home/v/valkeru/node/HelloWorld PassengerAppType node PassengerStartupFile app.js
Если вы решили воспользоваться предустановленным NodeJS, то .htaccess будет следующим:
PassengerNodejs /usr/local/bin/node PassengerAppRoot /home/v/valkeru/node/HelloWorld PassengerAppType node PassengerStartupFile app.js
Для того, чтобы Passenger перечитал конфиг, необходимо создать файл tmp/restart.txt. Cделать это нужно в директории, указанной в качестве PassengerAppRoot в файле .htaccess ранее.
valkeru@oscar2:~/node/HelloWorld [0] $ touch tmp/restart.txt valkeru@oscar2:~/node/HelloWorld [0] $
Обратите внимание!
В дальнейшем при изменении или добавлении кода также требуется выполнять данную команду, чтобы увидеть изменения на сайте.
Для проверки работоспособности откройте сайт в браузере:

Также для проверки работоспособности можно выполнить следующую команду:
valkeru@oscar2:~/node [0] $ ps aux | grep Passenger 659085 4148 0.1 0.0 878828 29796 ? Sl 02:55 0:00 Passenger NodeApp: /home/v/valkeru/node/HelloWorld valkeru 7365 0.0 0.0 7496 2144 pts/19 SN+ 02:56 0:00 grep Passenger
В листинге процессов присутствует модуль Apache Passenger.
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».
Установка Node.JS на Linux-сервере
![]()
Узнать последнюю актуальную версию Node.JS можно на официальном сайте:

Установка Node.JS из репозиториев операционной системы
При установке из стандартного репозитория вы получите неактуальную версию — ту, которая была доступна на момент выпуска вашей операционной системы. Для разработки или подготовки сервера под боевой проект этот способ установки не подойдёт. Но для обучения или экспериментов с кодом использовать можно.
Чтобы проверить доступную для установки версию, используйте команду:
apt show nodejs

Centos:
yum info nodejs
Установка выполняется за один шаг:
apt install -y nodejs npm
yum install -y nodejs
Чтобы убедиться, что установка прошла корректно, проверьте версию Node.JS и пакетного менеджера npm :
nodejs -v npm -v
node -v npm -v

Установка Node.JS из репозиториев NodeSource
При этом способе установки можно установить актуальную версию Node.JS. Список поддерживаемых операционных систем можно увидеть здесь.
Для установки потребуется curl . Во многих современных дистрибутивах Linux-систем он установлен по умолчанию. При необходимости можно выполнить ручную установку:
apt install -y curl
yum install -y curl
Для примера выполним установку последней стабильной версии Node.JS. Для этого нужно выполнить команды:
curl -sL https://deb.nodesource.com/setup_12.x | bash - apt install -y nodejs
curl -sL https://rpm.nodesource.com/setup_12.x | bash - yum install -y nodejs
Чтобы убедиться, что установка прошла корректно, проверим версию Node.JS и пакетного менеджера npm :
nodejs -v npm -v
node -v npm -v

Установка Node.JS с помощью менеджера версий nvm
Node Version Manager, или nvm , позволяет устанавливать любые версии Node.JS и при необходимости переключаться между ними. Инструкция по установке последней версии nvm доступна в описании официального Github-репозитория.
Для примера установим текущую актуальную версию nvm . Для этого, как в предыдущем случае, нам понадобится curl . С его помощью мы скачаем и запустим скрипт установки:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
Скрипт установит nvm в домашнюю папку текущего пользователя (в примере это пользователь root и его папка /root ) и добавит алиас для вызова менеджера в конфигурационный файл пользователя. Чтобы обновить терминал с учётом этих изменений, введите команду:
source ~/.bashrc
После этого проверим версию nvm , чтобы убедиться, что установка выполнена корректно:
nvm -v

Теперь мы можем использовать весь функционал nvm .
Просмотреть полный список доступных к установке версий Node.JS можно с помощью команды:
nvm ls-remote
Установить самую последнюю версию Node.JS можно следующим образом:
nvm install node
node в примере — это алиас к последней актуальной версии.
Установить конкретную версию из списка доступных можно так:
nvm install v12.19.0
где v12.19.0 — номер необходимой версии Node.JS, который можно скопировать в выводе команды nvm ls-remote .
После установки проверьте, что Node.JS установлен корректно, с помощью команды:
node -v
Для проверки списка уже установленных версий Node.JS введите в терминале:
nvm ls

Между установленными версиями можно переключаться. Например, в примере с помощью nvm у нас используется версия v12.19.0 . Помимо неё мы можем переключиться на ранее установленную системную версию (которую можно установить одним из предыдущих способов установки Node.JS) или любую другую:
nvm use system

Удалить установленную с помощью nvm версию Node.JS можно в два шага:
-
Проверяем, какая версия Node.JS сейчас используется:
nvm current
nvm deactivate nvm uninstall v12.19.0
Если используется другая версия, удаление можно запустить сразу:
nvm uninstall v12.19.0
Хостинг — как работает Node.js
В хостинге некоторые решения могут показаться вам нестандартными.
Поэтому перед началом работы мы бы рекомендовали ознакомиться с вводной статьей.
1. Запуск Node.js
При создании сайта необходимо выбрать, что сайт работает на Node.js:

Загрузить файлы сайта можно подключившись по SFTP.
Файлы вашего приложения можно расположить в каталоге sitename/app , а статические файлы (.css, .jpg, .png и другие) — в каталоге sitename/www .
Откройте настройки сайта в панели управления.
Если ваше приложение запускается через node hello.js , то укажите путь до hello.js в параметре APP_PATH, аналогично тому, как это сделано на скриншоте ниже:

Если ваше приложение запускается через npm start , то в APP_PATH укажите только путь до каталога, где находится package.json .
Установка пакетов и отладка сайта
Управлять проектом можно подключившись по SSH.
После входа на сервер по SSH можно, например, установить необходимые для работы вашего сайта пакеты.
Для каждого сайта уже создано индивидуальное виртуальное окружение. Свое собственное виртуальное окружение создавать не требуется.
При установке пакетов через npm install сначала перейдите в каталог с сайтом и виртуальное окружение активируется автоматически:
c566@h2:~$ c566@h2:~$ cd mydomain.ru/ Now using node v9.9.0 (npm v5.6.0) (node.js v9.9.0)c566@h2:~/mydomain.ru$
Далее можно установить нужные расширения:
(node.js v9.9.0)c3087@h2:~/mydomain.ru$ npm install mysql
Для отладки можно запустить любой скрипт, выполнив его напрямую. Для начала перейдем в каталог сайта:
c3087@h2:~$ c3087@h2:~$ cd mydomain.ru/ direnv: loading .envrc Now using node v9.9.0 (npm v5.6.0) direnv: export +ENV (node.js v9.9.0)c3087@h2:~/mydomain.ru$
Далее запустим скрипт:
(node.js v9.9.0)c3087@h2:~/mydomain.ru$ node app/hello.js Connected!
Особенности запуска вашего приложения
Чтобы сайт был виден извне нужно прикрепиться (bind) на IP и порт, которые мы передаем в переменных окружения APP_IP и APP_PORT.
По умолчанию в app/hello.js уже загружен пример использования переменных окружения APP_IP и APP_PORT. При обращении к сайту в браузере выводится “Hello world!”.
var http = require('http'); http.createServer(function (req, res) < res.writeHead(200, ); res.end('Hello world!\n'); >).listen(process.env.APP_PORT, process.env.APP_IP); console.log('Server running at http://%s:%s/', process.env.APP_IP, process.env.APP_PORT);
2. Смена версий Node.js
При необходимости можно задать нужную версию Node.js в панели управления
- откройте раздел “хостинг” в панели управления
- кликните на нужный контейнер
- кликните по нужному сайту
- перейдите на вкладку Node.js
Для уже работающего сайта смена версии Node.js может привести к неработоспособности сайта. Причиной этого может быть то, что версии пакетов, установленных вами через npm , никак не изменяются.
Возможно некоторые пакеты потребуется установить повторно, а некоторые пакеты вообще могут быть недоступны для выбранной вами версии Node.js.
3. Работа с MySQL
MySQL доступен только через сокет /run/mysqld/mysqld.sock и недоступен по сети.
Установим драйвер для работы с MySQL
npm install mysql
var mysql = require('mysql'); var con = mysql.createConnection(< socketPath: "/var/run/mysqld/mysqld.sock", user: "c3087_mydomain_ru", password: "HeKriDapsonag31" >); con.connect(function(err) < if (err) throw err; console.log("Connected!"); >);
Сохраним этот код в файл app/hello.js . Далее перезапустим приложение.
Если после открытия этого сайта в браузере появляется сообщение Connected! , то подключение к MySQL прошло успешно.
4. Работа с Redis
На хостинге в redis данные хранятся только в оперативной памяти и на диск не сохраняются. Из оперативной памяти данные очищаются при перезапуске сервиса, либо пока вы специально не удалите данные.
Установим драйвер для работы с redis
npm install redis
var redis = require("redis"); var client = redis.createClient(); client.on("error", function (err) < console.log("Error " + err); >); client.set("string key", "string val", redis.print); client.hset("hash key", "hashtest 1", "some value", redis.print); client.hset(["hash key", "hashtest 2", "some other value"], redis.print); client.hkeys("hash key", function (err, replies) < console.log(replies.length + " replies:"); replies.forEach(function (reply, i) < console.log(" " + i + ": " + reply); >); client.quit(); >);
Сохраним этот код в файл app/hello.js . Далее перезапустим приложение.
Если после открытия этого скрипта в браузере появляется сообщение Connected! , то подключение к MySQL прошло успешно.
5. Работа с Memcached
Для начала работы с Memcached можно установить два пакета
npm install memcached express
Пример подключения к Memcached и сохранения данных на 10000 секунд:
var express = require("express"); var Memcached = require('memcached'); var app = express(); app.listen(process.env.APP_PORT, process.env.APP_IP); var memcached = new Memcached(); memcached.connect( '127.0.0.1:11211', function( err, conn ) < if( err ) < console.log( conn.server ); >>); var profile = memcached.set('profile', profile, 10000, function (err) < if(err) throw new err; >);
Сохраним этот код в файл app/hello.js . Далее перезапустим приложение.
Чтобы проверить сохраненные данные подключимся по SSH , а далее подключимся к серверу Memcached
$ telnet 127.0.4.27 11211 Trying 127.0.4.27. Connected to 127.0.4.27. Escape character is '^]'.
Запросим значение ключа profile :
get profile VALUE profile 2 44 END
6. Перезапуск сервиса после изменения кода сайта
После подключения по SSH можно перезапустить сервис NodeJS выполнив команду
touch sitename/reload
c3087@h2:~$ touch mydomain.ru/reload
7. Работа с ошибками приложения
Если при обращении к сайту вы видите ошибку 502 Bad Gateway или аналогичную, то в первую очередь стоит обратиться к логам ошибок.
Последние возникавшие ошибки можно найти в конце файла имясайта/log/node-runlog/current .
Наблюдение за лог-файлом в реальном времени:
tail -f ~/имясайта/log/node-runlog/current