В статье будет рассмотрена настройка 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) username@server: [0]~
На некоторых серверах хостинга по умолчанию установлены Node.js и npm старых версий:
(docker) username@server:~ [0] $ node -v
v8.12.0
(docker) username@server:~ [0] $ npm -v
6.4.1
Однако на некоторых серверах они могут отсутствовать:
-bash: node: command not found
Для использования актуальных версий Node.js и npm потребуется установить их.
Установка актуальной версии Node.js из официальных источников
Мы разработали видеоинструкцию, где в удобном формате объяснили как осуществляется установка node.js на виртуальный хостинг.
Проверить версию ОС на хостинге можно выполнив команду
cat /etc/os-release/
в Docker-окружении.Инструкция по установке NodeJS версии 18 и выше на Ubuntu 18.04 доступна в следующем разделе.
Установка Node.js производится в каталог .local
вашей учетной записи, если данной директории в корне вашего аккаунта нет, ее потребуется создать командой mkdir
:
mkdir -p .local
После чего перейдем в каталог:
cd .local
Загрузим дистрибутив командой wget
(в примере указана ссылка на архив с версией 17.9.1, если вам необходима другая версия, вы можете найти нужный вам архив по ссылке):
wget https://nodejs.org/dist/v17.9.1/node-v17.9.1-linux-x64.tar.xz
--2023-08-03 20:28:33-- https://nodejs.org/dist/v17.9.1/node-v17.9.1-linux-x64.tar.xz
Resolving nodejs.org (nodejs.org)... 104.20.22.46, 104.20.23.46, 2606:4700:10::6814:172e, ...
Connecting to nodejs.org (nodejs.org)|104.20.22.46|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22672072 (22M) [application/x-xz]
Saving to: ‘node-v17.9.1-linux-x64.tar.xz’
node-v17.9.1-linux-x64.tar.xz 100%[======================================================================================>] 21.62M 9.73MB/s in 2.2s
2023-08-03 20:28:36 (9.73 MB/s) - ‘node-v17.9.1-linux-x64.tar.xz’ saved [22672072/22672072]
После того как архив успешно загрузился, распакуем его:
tar -xJf node-v17.9.1-linux-x64.tar.xz --strip 1
--strip 1
в данном случае необходим для распаковки архива непосредственно в директорию .local
. Если вы не планируете использовать несколько различных версий Node.js, рекомендуем использовать его при установке, в противном случае архив распакуется в директорию вида node-v17.9.1-linux-x64
.Проверим работу node
и npm
:
node -v && npm -v
Пример корректного результата:
(docker) username@server:~ [0] $ node -v && npm -v
v17.9.1
8.11.0
Если после запуска команды отображается версия Node, соответствующая загруженному архиву, установка выполнена успешно и ошибок при вызове не возникает, можем удалить архив дистрибутива (если вы устанавливали версию, отличную от 17.9.1, укажите соответствующее название файла в команде)
rm node-v17.9.1-linux-x64.tar.xz
~/.local
.Инструкция по предоставлению общего доступа приведена в этой статье.
Установка Node.js версии 18.x и выше
Мы разработали видеоинструкцию, где в удобном формате объяснили как осуществляется установка node.js на виртуальный хостинг.
В связи с особенностями окружения виртуального хостинга, официальные исполняемые файлы Node.js версий 18.x и выше не могут быть запущены на всех серверах хостинга. Для решения данной проблемы нами были собраны исполняемые файлы для некоторых версий из исходного кода с nodejs.org, совместимые с окружением хостинга.
Для установки на данный момент доступны следующие версии:
18.17.0
- https://cp.beget.com/shared/nZ-Grt-wdN-TpDRnWM0Fg3XkTf_NScI2/node-v18.17.0-bionic.tar.xz18.18.2
- https://cp.beget.com/shared/emJm-JWhtkILld_1KrNyU34ym75SfM--/node-v18.18.2-bionic.tar.xz18.19.0
- http://cp.beget.com/shared/ikj6tguPH4FTb40HxqX2ZZ-XNWbvCohj/node-v18.19.0-bionic.tar.xz19.9.0
- https://cp.beget.com/shared/wHV_h4FJaIvwzqchZJuyRPalU58o5xmP/node-v19.9.0-bionic.tar.xz20.5.0
- https://cp.beget.com/shared/H1crojipLBTHZbxHTvYA-ro_JXppCrB-/node-v20.5.0-bionic.tar.xz20.9.0
- https://cp.beget.com/shared/kdEvvyndUCBRspzTKAhKD_X97gxk-6Oi/node-v20.9.0-bionic.tar.xz20.11.0
- https://cp.beget.com/shared/ON0kacA35gnJJ5FbZa3WvdY6-wtaR4Kl/node-v20.11.0-bionic.tar.xz20.18.0
- https://cp.beget.com/shared/mTuC2AhpJ7TjGCEEwczf0y2fzWXGqxZv/node-v20.18.0-bionic.tar.xz21.2.0
- https://cp.beget.com/shared/nD5s5AJxHlEVoLuZU5eshEpHjg2I8obo/node-v21.2.0-bionic.tar.xz21.5.0
- http://cp.beget.com/shared/xmndW61z9PdrEzEzuf49T2X50I86ek3S/node-v21.5.0-bionic.tar.xz
Сам процесс установки не отличается от установки из официального источника. Находясь в корне аккаунта, создадим каталог .local
, если его еще нет:
mkdir -p .local
И перейдем в него:
cd .local
Загрузим архив с дистрибутивом, используя одну из указанных выше ссылок (в данном примере рассматривается установка версии 20.5.0):
wget "https://cp.beget.com/shared/H1crojipLBTHZbxHTvYA-ro_JXppCrB-/node-v20.5.0-bionic.tar.xz"
Распакуем архив в директорию .local
:
tar -xJf node-v20.5.0-bionic.tar.xz --strip 1
--strip 1
в данном случае необходим для распаковки архива непосредственно в директорию .local
. Если вы не планируете использовать несколько различных версий Node.js, рекомендуем использовать его при установке, в противном случае архив распакуется в директорию вида node-v20.5.0-bionic
.Проверим работу node
и npm
:
node -v && npm -v
Пример корректного результата выполнения команд:
(docker) username@server:~ [0] $ node -v && npm -v
v20.5.0
9.8.0
Если после запуска команды отображается версия Node, соответствующая загруженному архиву, и ошибок при вызове не возникает, установка выполнена успешно, можем удалить архив дистрибутива (если вы устанавливали версию, отличную от 20.5.0, укажите соответствующее название файла в команде):
rm node-v20.5.0-bionic.tar.xz
Разворачивание Node-приложения на Nuxt.js на виртуальном хостинге
Мы разработали видеоинструкцию, где в удобном формате объяснили, как осуществить установку и настройку Node.js на хостинг
На виртуальном хостинге Node-приложения запускаются с помощью Apache mod_passenger
. Сам процесс может отличаться в зависимости от используемого фреймворка и структуры вашего проекта, однако в общих чертах сводится к следующим этапам:
- Создание каталога проекта и размещение файлов проекта.
- Установка и управление зависимостями Node.js.
- Сборка проекта.
- Создание символьных ссылок при необходимости.
- Создание файла
.htaccess
для конфигурации и запуска проекта с помощьюmod_passenger
. - Создание директории
tmp
, содержащей файлrestart.txt
в директории, указанной какPassengerAppRoot
в.htaccess
ранее.
В качестве примера развертывания Node.js-приложений развернем тестовое приложение на Nuxt.js: https://cp.beget.com/shared/IPcrWRKNmhyvzfTmR8w0puh6cpgc8BsR/nuxt-example-beget.tar.gz
- Если сайт под проект еще не создан в разделе “Сайты”, создайте его.
- Перейдите в каталог проекта.
cd nuxt_node_app
- Загрузите архив с файлами проекта в директорию.
wget https://cp.beget.com/shared/IPcrWRKNmhyvzfTmR8w0puh6cpgc8BsR/nuxt-example-beget.tar.gz
- Создайте файл
.htaccess
, в котором задаем конфигурацию Node.js-проекта, выполнив следующие команды:
echo "PassengerNodejs $(which node)" >> .htaccess
echo "PassengerAppRoot $(realpath nuxt-example-beget)" >> .htaccess
echo "PassengerAppType node" >> .htaccess
echo "PassengerStartupFile server.js" >> .htaccess
В результате содержимое файла должно иметь следующий вид:
PassengerNodejs /home/u/username/.local/bin/node
PassengerAppRoot /home/u/username/nuxt_node_app/nuxt-example-beget
PassengerAppType node
PassengerStartupFile server.js
PassengerNodejs
– путь до исполняемого файла Node.js, узнать путь можно, выполнив команду which node.PassengerAppRoot
– путь до директории проекта.PassengerAppType
– тип приложения, в данном случае node.PassengerStartupFile
– точка входа в приложение, будет отличаться в зависимости от структуры проекта и используемого фреймворка.
- Удалите директорию
public_html
и создайте символьную ссылку на директорию со статическими файлами для того, чтобы они отдавались средствами Nginx:
rm -rf public_html
ln -s nuxt-example-beget/public public_html
public_html
и добавить в директорию проекта ссылки на нее. Убедитесь, что конечная директория не имеет FTP-аккаунтов, прикрепленных к ней, в противном случае может возникнуть ошибка доступа к статическому контенту.- Перейдите в директорию проекта, установите зависимости и соберите проект:
cd nuxt-example-beget
npm install
npm run build
- Создайте в директории проекта директорию tmp и файл restart.txt в ней:
mkdir tmp
touch tmp/restart.txt
Проверьте результат, открыв сайт в браузере:

Надеемся, наша инструкция с пошаговой настройкой Node.js была вам полезна.
Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью или наши продукты с коллегами по цеху и сотрудниками Бегета – ждем вас в нашем сообществе в Telegram.