Как установить Node.js на Ubuntu
В статье мы расскажем, как проходит установка node js на Ubuntu и что это такое. Настройка VPS Node js Ubuntu по инструкции не займет у вас много времени.
Что такое Node.js
Node.js — это среда выполнения JavaScript. Платформа позволяет работать с JavaScript на стороне сервера. Раньше JavaScript мог выполнять только браузер, но благодаря Node.js код можно выполнять и вне браузера. Node.js построен на движке Chrome V8.
Обычно Node.js используют для написания серверного кода сайтов и веб-приложений, однако его можно использовать и для десктопных программ.
Как установить Node js на Ubuntu
Если ранее у вас уже была установлена какая-либо из версий Node, вы можете как переустановить Node js, так и полностью удалить старую версию, а после поставить новую. Мы расскажем, как поставить на VPS Node js с нуля.
Node.js можно установить на Linux Ubuntu несколькими способами:
- с помощью пакетного менеджера Ubuntu,
- через PPA (Personal Package Archive) — архив персональных пакетов,
- через NVM (Node Version Manager) — bash-скрипт,
- через бинарные файлы.
Рассмотрим самые простые и надежные способы — с помощью пакетного менеджера и через архив персональных пакетов PPA.
Установка Node.js через пакетный менеджер
Важно! Перед установкой убедитесь, что вы вошли под суперпользователем sudo.
- Откройте терминал.
- Обновите локальный индекс пакетов:
sudo apt update
3. Установите Node js репозиторий:
sudo apt install nodejs
4. Установите менеджер пакетов npm Ubuntu:
sudo apt install npm
5. Проверьте работоспособность программ командами:
nodejs -v
npm -v

Node js Ubuntu install
Готово, вы установили Node.js на виртуальный выделенный сервер (VPS) c Ubuntu.
Установка Node.js через архив персональных пакетов PPA
- Откройте терминал.
- Перейдите в домашнюю директорию:
3. Для установки версии PPA введите команду:
curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
где вместо 8.x вы можете добавить нужную вам версию.
4. Проверьте содержимое скрипта с помощью nano или любого другого текстового редактора:
nano nodesource_setup.sh
5. Запустите скрипт с правами sudo. После этого PPA будет включен в конфигурацию. Ваш локальный кэш пакетов автоматически обновится.
sudo bash nodesource_setup.sh
6. Установите репозиторий Node.js:
sudo apt install nodejs
7. Установленный пакет Node.js содержит в себе менеджер пакетов npm. Для отслеживания обновлений npm обращается к конфигурационному файлу вашей домашней директории. Файл будет создан при первом запуске npm.
Проверьте работоспособность программы с помощью команд:
node -v
npm -v

Linux install Nodejs
Готово, вы установили Node.js на виртуальный сервер (VDS) c Ubuntu.
Популярные статьи
- Как указать (изменить) DNS-серверы для домена
- Я зарегистрировал домен, что дальше
- Как добавить запись типа A, AAAA, CNAME, MX, TXT, SRV для своего домена
- Что такое редирект: виды и возможности настройки
- Как создать почту со своим доменом
Установка и настройка Node.js на VPS


2. Ставим Node.js:
sudo yum install nodejs

3. Проверяем установку командами:
node —version
npm —version

4. Устанавливаем инструментарий разработчика.
sudo yum install gcc-c++ make

5. Создаем тестовый файл:
nano hello_world.js
Добавляем в наш файл следующее содержимое:
var http = require(‘http’);
http.createServer(function (req, res) res.writeHead(200, );
res.end(‘Hello World\n’);
>).listen(8080, ‘IP_ADDRESS’);
console.log(‘Server running at http://IP_ADDRESS:8080/’);

Порт может быть любым свободным, IP_ADDRESS — IP-адрес Вашей VPS.
6. Запускаем:
node hello_world.js

Должна появиться строка Server running at http://IP_ADDRESS:8080/
7. Проверяем доступ, подключившись с другого терминала командой:
curl http://IP_ADDRESS:8080/

И открываем в браузере ссылку http://IP_ADDRESS:8080/

Если ссылка в браузере не открывается/соединение через curl не устанавливается, проверьте настройки firewall на Вашей VPS.
Рейтинг лучших SSD VPS по ссылке.
Установка 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 хостинг на VPS
По ходу изучения Node.js я создал много маленьких проектов. В дальнейшем мне понадобилось развернуть некоторые из них на сервере, чтобы иметь возможность развивать их в дальнейшем. Существующие хостинги Appfog и Heroku имеют ряд серьезных ограничений на бесплатных аккаунтах. На Appfog’е можно запускать одновременно не больше 2-х приложений, и бесплатная регистрация у них уже отключена. На Heroku можно создать только 5 приложений (без базы данных) без подтверждения аккаунта привязкой банковской карты. Платные аккаунты стоят очень дорого для меня (я ведь не зарабатываю на этих маленьких проектах): $20 долларов на Appfog, а heroku еще дороже. Коллеги порекомендовали попробовать хостинг на Digital Ocean — виртуальный сервер за $5 доларов в месяц, на котором можно легко настроить собственный хостинг node.js-проектов.
О том, как организовать такой хостинг, и будет идти речь в этой статье. Если по ходу руководства у вас возникнут проблемы, поищите их решение в конце статьи.
Создаем VPS
1. Регистрация на DigitalOcean
Первым делом регистрируемся на сайте DigitalOcean. Здесь мы купим VPS — виртуальный сервер. После удачной регистрации и входа в свою админку жмем на большую зеленую кнопку «Create» и нам предложат активировать свой аккаунт, внеся $5 долларов. Ниже на странице есть место для указания счастливого купона на $10, вводите OMGSSD10 или поищите свежий купон. Так как моя банковская карточка не подошла хостеру, я оплатил пейпалом и у меня на счету оказалось $15. Этого должно хватить на 3 месяца.
2. Создаем SSH-ключ
Доступ к удаленным серверам обычно делается по ssh. Это такая технология защищенных соединений. Зайти в нашу будущую VPS можно по паролю или по SSH-ключу. Я настоятельно рекомендую второй вариант, не придется все время вводить пароль. Также, SSH-ключ все равно нужно будет указать при создании нашего нового «дроплета» (словом «droplet» DigitalOcean называет виртуальный сервер).
Выполните следующие две команды в терминале, чтобы сгенерировать ssh-ключ:
$ cd ~/.ssh $ ssh-keygen -t rsa -C "email@example.com"
И тут нас просят ввести имя файла ключа. Рекомендую использовать что-нибудь вроде id_rsa_digitalocean_dropletname , где имя дроплета — это либо имя домена, на который мы привяжем наш сервер, либо просто какое-нибудь осмысленное название. Парафразу можно оставить пустой, и так сойдет.
После этого будет создано два файла: ssh-ключ и public-ключ. Скопируем публичный ключ в буфер обмена модным способом:
$ cat ~/.ssh/id_rsa_digitalocean_dropletname.pub | pbcopy
Теперь зайдем в админку в digitaloceans в раздел SSH-keys и создадим там новый ключ, вставив его из буфера обмена.
3. Создаем дроплет
- В качестве hostname укажите доменное имя или что-нибудь осмысленное, это название роли не играет
- Размер выбирайте самый маленький, его потом можно будет увеличить из терминала
- Регион любой, я выбрал Амстердам
- Образ выберите на вкладке Applications, c названием «Dokku v0.2.3 on Ubuntu. » или похожим
- Укажите SSH-ключ, который мы создали на предыдущем шаге
Выбранный образ помимо операционной системы Ubuntu 14.04 содержит самое главное: Dokku. Это готовая система для хостинга node.js-проектов, очень похожая на Heroku. Использование образа с предустановленным Dokku избавит нас от необходимости устанавливать и настраивать систему для хостинга Node.js.
4. Настройка Дроплета и DNS

Теперь нужно настроить новосозданный сервер. Зайдите в браузере по IP-адресу дроплета и вы увидете экран настройки. Если такой страницы нет, смотрите что делать в конце статьи.
Здесь вы должны убедится, что поле «Public Key» заполнено. Если нет — укажите свой public key из недавно сгенерированного ключа. Однако практика показала, что лучше вообще удалить такой дроплет и создать новый, правильно указав SSH-ключ.
Если у вас нет доменного имени, то оставьте все, как есть, жмите «Finish setup» и переходите к следующему пункту. Ваше приложение будет доступно примерно так: «19.19.197.19:46667», по IP адресу и номеру порта. Если вас это не устраивает — срочно купите доменное имя. В любом случае, настроить доменное имя можно будет позже, о чем я расскажу в конце.
Если вы укажете доменное имя, у вас будет возможность настроить доступ к приложениям через поддомены. Например, если ваше доменное имя mydomain.com , тогда ваше приложение будет доступно по адресу app.mydomain.com . Также есть возможность привязать приложение на главный домен, но об это я в данной статье не расскажу.
Укажите в поле Hostname ваше доменное имя и поставьте галочку «Use virtualhost naming for apps». Теперь идите в панель управления вашим доменным именем и впишите две новые настройки примерно так:
apps.mydomain.com. IN A [Droplet IP address]
*.apps.mydomain.com. IN A [Droplet IP address]
mydomain.com. IN A [Droplet IP address]
*.mydomain.com. IN A [Droplet IP address]
Точный синтаксис уточните у себя в админке доменного имени или у домен-провайдера.
Теперь возвращайтесь на страницу настройки дроплета и жмите «Finish setup».
5. Настраиваем использование SSH
Давайте попробуем соединиться с нашим новым сервером. Чтобы получить доступ дроплету через SSH-ключ, нужно еще одно маленькое действие. Откройте терминал и передите в папку с ssh-ключами:
$ cd ~/.ssh/
Если у вас еще нет файла «config» в этой папке (проверка — $ ls ), то его необходимо создать:
$ touch config
Теперь открываем config( $ open config ) и записываем в него следующие данные:
Host YOUR.DROPLET.IP.ADDRESS IdentityFile ~/.ssh/id_rsa_digitalocean_dropletname
Где в первой строчке IP адрес или доменное имя, на второй строчке — имя созданного ssh-ключа для этого дроплета.
$ ssh root@YOUR.DROPLET.IP.ADDRESS
Где после «@» надо указать или доменное имя, или IP.
Если вы пропустили создание SSH-ключа, войти можно по паролю, который пришел к вам на почту. Для этого выполните ту же команду:
$ ssh root@YOUR.DROPLET.IP.ADDRESS
и на вопрос о продолжении соединения напишите «yes». После этого введите пароль.
Если вы увидели приветственный экран, значит все хорошо. Закроем соединение командой exit и перейдем к следующему пункту.
Деплоим приложение
Сервер готов, теперь пришла очередь развернуть тестовое приложение и проверить его работу.
1. Подготавливаем проект
Возьмите простой проект, типа Hello, world, без mongodb и прочего. Проверьте, что в проекте есть самое главное: «package.json», «Procfile» и какой-нибудь «app.js». «Package.json» должен выглядеть примерно так:
< "name": "dokku-demo-application", "version": "1.0.0", "engines": < "node": ">=0.10.*", "npm": ">=1.3" >, "dependencies": < "express": "~3.0" >>
Содержание файла package.json важно, так как по нему dokku будет устанавливать модули для приложения. А Procfile должен выглядеть так:
web: node server.js
Инициализируем в папке проекта репозиторий (если его не было), добавляем все файлы и коммитим:
$ git init && git add -A && git commit -m "Initial commit"
Теперь наш проект готов к разворачиванию на сервере.
2. Заливаем и запускаем проект
Деплоить приложение будем с помощью команды git push . И для этого добавим ссылку на удаленный репозиторий нашего дроплета:
$ git remote add dokku dokku@mydomain.com:application_name
Если у нас было доменное имя для дроплета, то пишем его после «dokku@», иначе — указываем IP. После двоеточия мы указываем имя приложения. Этот индификатор будет использоваться внутри dokku.
Теперь вызываем команду push :
$ git push dokku master
И начинается загрузка приложения, установка модулей. В конце на экране покажется url, по которому можно запустить проект. Это будет ссылка вида 192.88.67.168:46567 или app1.mydomain.com, в зависимости от настроек dokku.
По идее проект должен быть запущен после этого. Но если нет, то заходим в по ssh в наш дроплет и выполняем две команды
$ cd /home/dokku/YOUR-APP-NAME $ dokku run YOUR-APP-NAME node app.js
Запускаем в браузере ссылку, полученную ранее, и радуемся!
Проблемы и их устранение
Я сам разбирался с настройкой такого хостинга более суток, и набил несколько шишек. И чтобы вы могли съэкономить свое время, привожу здесь несколько возможных проблем и пути их решения.
1. Мою банковскую карточку не приняли для оплаты
Они такие, да. Даже Visa Classic им не нравится. Оплатите через PayPal, это не трудно.
2. Создал дроплет, но по IP адресу нет страницы настройки dokku
- указать образ с Dokku
- нажмите кнопку «Rebuild from Image».
3. Не могу получить доступ к дроплету ни по паролю, ни по SSH
- Наверное, вы как-то пропустили шаг настройки dokku, или dokky создался не правильно.
- Проверьте, если доступна страница настройки dokku по IP адресу дроплета, то вернитесь к шагу 4 создания VPS.
- Если страницы настроек нет, тогда попробуйте сбросить пароль и повторить попытку доступа через терминал. Если даже в этом случае доступ по паролю будет неудачным, тогда переустановите дроплет, как описано в предыдущем пункте.
4. Я не знаю пароля от дроплета
Если у вас нет пароля, зайдите на страницу управления дроплетом, вкладка «Access» и сделайте reset пароля. Тогда на почту придет новый пароль.
5. Проект не запускается по указанной ссылке
Если настройки dokku верны, такая ситуация возможна, если приложение запустилось с ошибкой и было закрыто. Зайтиде по ssh в дроплет и проверьте логи:
$ dokku logs
Возможно, ошибка будет понятна. Или же вы забыли запустить ваш проект после push’а:
$ cd /home/dokku/YOUR-APP-NAME $ dokku run YOUR-APP-NAME node app.js
6. Я пропустил создание SSH, и теперь хочу сделать авторизацию по SSH-ключу
Я пытался создать новый дроплет без указания ssh-ключа на странице создания дроплета, но на странице настроек dokku все равно просят ввести паблик-ключ. После этого я принял некоторые действия, но все равно зайти по ssh-ключу у меня не вышло, только пароль. Так что я не знаю, как лучше действовать в данной ситуации. Возможно, ошибка происходила при команде копирования ssh ключа в дроплет. Гуглите. В крайнем случае создайте новый дроплет с самого начала, по уму, как в этом руководстве. Пример поиска.
7. Как добавить доменное имя к уже существующему дроплету
Это делается совсем не трудно, всего в несколько шагов. В настройках DNS вашего доменного имени указать настройки:
apps.mydomain.com. IN A [Droplet IP address]
*.apps.mydomain.com. IN A [Droplet IP address]
В дроплете зайти в папку dokku и открыть для редактирования HOSTNAME:
$ cd /home/dokku/ $ vim HOSTNAME
Нажать клавишу «i» и записать в файле «HOSTNAME» доменное имя вместо IP адреса; затем нажать Esc , кнопки :wq и Enter . Ура! Мы только что успешно использовали легендарный Vim!
Чтобы проекты запускались на поддоменах, нужно создать файл VHOST :
$ touch VHOST
И записать в файле доменное имя таким же способом, как это было в предыдущем пункте. В противном случае проекты будут доступны через порт. Теперь надо перезалить проект, а перед этим удалить его из dokku:
$ dokku delete app_name
Удалить в репозитории предыдущий remote с IP-адресом в названии:
$ git remote remove dokku
И добавить новый remote под старым именем:
$ git remote add dokku dokku@apps.mydomain.com:app_name
Настраиваем SSH-ключ на новый хостинг, дописывая в ~/.ssh/config новые строчки:
Host YOUR.DROPLET.IP.ADDRESS IdentityFile ~/.ssh/id_rsa_digitalocean_dropletname
Смело пушаем проект:
$ git push dokku master
Теперь проекты будут доступны на поддоменах.
Всем спасибо за внимание, хороших выходных!
