Как запустить Node.js на обычном хостинге


01-04-2019
Денис Л.
JavaScript
4
407
Как запустить 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. Первым делом давайте запишем себе текущий путь данной директории (это пригодится нам в дальнейшем). Для этого, находясь в директории, где у Вас есть права на создание файлов и папок, выполним команду:

pwd

и запишем себе куда-нибудь тот путь, который нам показала консоль.

Затем в домашней директории аккаунта ищем файл .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. В том числе, мы можем настроить автоматическую сборку пакетов, автоматическую минификацию и сборку стилей, сжатие изображений при их загрузке и многое другое...

Читайте также:

Защищаем JavaScript от копирования

Node.js: как рекурсивно сжать все изображения на сайте за 1 час

Сохраняем данные формы на сайте при перезагрузке страницы, с помощью JavaScript и sessionStorage