Как запустить Node.js на обычном хостинге
Вам нравится Node.js ? Хотите использовать Gulp 4 / Grunt / Webpack на обычном хостинге? Но как сделать это? Ведь на стандартных хостингах нет возможности самостоятельной установки программ. Т.е. Вы не можете запустить установку ни одной программы, даже из официальных репозиториев Linux. Есть выход — nvm (Node Version Manager) . С помощью данной утилиты Вы сможете установить и запустить Node.js, npm и любой сборщик, типа Gulp или Grunt на любом стандартном хостинге (даже тех, которые утверждают, что для запуска Node.js требуется покупка тарифа с выделенным сервером). Для установки nvm не требуются права администратора, нужна лишь стандартная оболочка bash и программа wget , а всё это входит в любой дистрибутив Linux, на любом хостинге.
Как установить Node.js, npm на обычном хостинге без прав администратора
Первым делом подключаемся через ssh к серверу . Для этого достаточно команды:
ssh логин@хост
Там где логин и хост ставьте логин, который Вы используете для FTP / SFTP , а хост Вы можете узнать у Вашего хостинг-провайдера. Всё это всегда даётся при регистрации хостинга, либо можно посмотреть в панели управления. Обращаю внимание, что хост для FTP и SFTP может отличаться .
Далее нужно понять, есть ли в домашней директории Вашего аккаунта права на создание файлов и папок . Это можно понять, попробовав создать любую папку в домашней директории аккаунта. Обращаю Ваше внимание, что домашняя директории аккаунта — это НЕ домашняя директория сайта. Домашняя директория аккаунта всегда располагается на один уровень выше и в ней нет никаких файлов и папок, относящихся к Вашему сайту. Так вот. Попробуйте создать там любой файл или папку. Для создания файла / папки Вы можете использовать в консоли команду:
cd ~ && touch test.txt && mkdir test
Если не будет никаких сообщений об ошибках, то всё ОК. Удалите тестовый каталог и файл командой:
rm -r test.txt test
Но если у Вас будет ошибка, значит создание файлов и папок в домашней директории аккаунта запрещено. Тогда ищем ту папку, в которой у нас есть возможность создавать файлы и папки. Обычно это папка с названием типа private и тому подобным. В данной папке хостинг провайдер разрешает хранить Вам бекапы, логи и любую другую информацию. Сделаем эту директорию домашней, чтобы корректно выполнялись все команды nvm и Node.js. Первым делом давайте запишем себе текущий путь данной директории (это пригодится нам в дальнейшем). Для этого, находясь в директории, где у Вас есть права на создание файлов и папок, выполним команду:
и запишем себе куда-нибудь тот путь, который нам показала консоль.
Затем в домашней директории аккаунта ищем файл .bashrc . Этот файл отвечает за выполнении пользовательских команд во время работы командной оболочки. Чтобы увидеть список файлов, которые есть, выполните команду:
cd ~ && ls -la
Если данного файла там нет, создаём его и сразу запускаем его редактирование связкой команд:
touch .bashrc && nano .bashrc
Запускается текстовый редактор nano и мы можем вносить туда данные. А именно, нам нужно переопределить системную переменную HOME . На работу Вашего сайта это никак не повлияет, это лишь задаст системную домашнюю директории Вашего аккаунта. Нам необходимо вписать следующее:
HOME=полный_путь_на_новую_домашнюю_директорию (мы записывали этот путь себе ранее)
Сохраняем файл. Для этого сначала нажимаем Ctrl+X , затем Y , затем Enter .
Затем ищем файл .bash_profile (он обязательно будет в домашней директории) и открываем его на редактирование командой:
nano .bash_profile
Вписываем туда строки:
if [ -f ~/.bashrc ]; then . ~/.bashrc fi
Теперь нам нужно закрыть терминал, открыть его заново и снова подключиться к серверу через SSH. Это необходимо для того, чтобы новые настройки вступили в силу при новом подключении к серверу.
После подключения выполняем:
cd ~ && pwd
Если мы всё сделали правильно — мы должны увидеть путь на нашу директорию, в которой мы имеем право создавать файлы и папки.
Теперь нам осталось скачать и запустить nvm (Node Version Manager) :
wget -qO- https://cdn.rawgit.com/creationix/nvm/master/install.sh | bash
После завершения скачивания и установки nvm перезапускаем терминал, заново подключаемся по SSH.
Затем открываем на редактирование файл .bashrc (как это сделать я писал ранее), и вписываем туда две строки:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Перезапускаем терминал, заново подключаемся по SSH.
Затем устанавливаем Node.js и пакетный менеджер npm:
cd ~ && nvm install stable
После выполнения данной команды у нас установится последняя версия Node.js и npm.
После завершения установки проверим это. Выполним команду:
node -v
В консоли появится номер актуальной версии Node.js
Теперь мы можем использовать Gulp 4 / Grunt / Webpack и все другие возможности Node. В том числе, мы можем настроить автоматическую сборку пакетов, автоматическую минификацию и сборку стилей, сжатие изображений при их загрузке и многое другое.
Подписывайтесь на группу в ВКонтакте, вступайте в сообщество на Facebook, чтобы всегда быть в курсе актуальных выпусков
W e b d e v e l o p m e n t b l o g !
Node.js приложение запустить на хостинге
Написал сайт на Node+react+mongo. Соответственно все делал на локале (Запуск сервера и коддинг). Теперь взял пробное место на хостинге Timeweb. Залил туда проект, установил на сервере Node + все зависимости проекта. Код работает если вызываю команду node app.js , который запускает этот код
const express = require('express'); const MongoClient = require('mongodb').MongoClient; // const path = require('path'); // const logger = require('morgan'); // const multer = require('multer'); const bodyParser = require('body-parser'); const db = require('./config/db'); const app = express(); const port = 8000; app.use(bodyParser.json()); app.use(bodyParser.urlencoded()); app.use(express.static(`$/public`)); const dirname = __dirname; MongoClient.connect(db.url, (err, database) => < if (err) return console.log(err) require('./server/routes')(app, database, dirname); app.listen(process.env.PORT || port, () =>< console.log(process.env.PORT || port) >) >)
и выводит в консоль соответствующий порт 8000 . Вопрос собственно в том, как мне сделать чтобы мое приложение запускалось и все рендерилось под доменом так же как я это видел на локале. Можно хотябы ссылку на какуюто информаию или туториал.
Настройка 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 на Ubuntu
В Рег.облаке можно за пару кликов заказать готовый облачный сервер с Node.js.
В нашей инструкции мы расскажем, что такое Node.js и зачем она нужна, а затем покажем быстрые способы установки Node.js на Ubuntu.
Облачные серверы нового поколения
Попробуйте Облачный VPS с установленным Node.js!

Что такое Node.js
Node.js (или Node, Nodejs, Node js) — это платформа, которая позволяет выполнять JavaScript код на сервере, а не в браузере клиента.
Например, вы разработали онлайн-редактор текста, который работает только в браузере. Ваш проект стал разрастаться и вам нужно добавить в него функции для корпоративного сегмента (сохранение файлов и их версий на сервере, совместное редактирование и прочее). Для этого нужно начать хранить и обрабатывать данные на сервере. Благодаря платформе Node.js вы можете сохранить и переиспользовать основную часть кода, а не реализовывать всю логика «с нуля» на другом языке.
Node.js работает на движке V8 JavaScript, который разработан и поддерживается Google. V8 компилирует JavaScript-код в эффективные машинные инструкции. Он не использует интерпретатор, байт-код или любой другой промежуточный код, что значительно сокращает время выполнения.
К тому же, Node.js обеспечивает эффективное распределение ресурсов и управление потоками обработки. Он работает в асинхронном режиме, то есть сервер не создает отдельный поток для каждого подключения, а гибко распределяет доступные ресурсы в зависимости от текущей загрузки сервера.
Все это позволяет сократить время обработки запросов и создавать масштабируемые сервисы, способные эффективно обслуживать сотни тысяч пользователей одновременно.
С помощью Node.js можно работать с готовыми библиотеками, создавать API, запускать скрипты и обрабатывать пакеты. Также платформа подойдет для создания десктопных программ и гибридных приложений.

Рассмотрим способы установки Node.js на Ubuntu.
Как установить Node js на Ubuntu
Если когда-то у вас уже была установлена одна из версий Node, вы можете переустановить Node js или полностью удалить старую версию, а затем поставить новую. Мы рассмотрим варианты установки Node.js с нуля.
Node.js можно установить на Ubuntu одним из способов:
- через NVM (Node Version Manager) — bash-скрипт,
- через PPA (Personal Package Archive) — архив персональных пакетов,
- с помощью пакетного менеджера Ubuntu,
- через бинарные файлы.
Рассмотрим два самых простых и надежных варианта установки — с помощью пакетного менеджера и через архив персональных пакетов PPA.
Установка Node.js через пакетный менеджер
Пакетный менеджер — самый простой инструмент для установки дистрибутива Node.js. Обратимся к официальным репозиториям Ubuntu и установим стабильную версию.
Перед установкой убедитесь, что вы зашли под суперпользователем sudo.
Откройте терминал. Если вы пользуетесь графической оболочкой, используйте сочетание клавиш Ctrl+Alt+T.
Обновите локальный индекс пакетов:
sudo apt update
