Как установить node js на хостинг
Перейти к содержимому

Как установить node js на хостинг

  • автор:

Установка Node.js

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

Подключение к серверу по SSH

Установка Node.js на Centos

После того как мы подключились необходимо обновить репозиторий программ до последних версий с помощью следующей команды

yum -y update

Выполнение команды может занять несколько минут, отчет обо всех обновленных пакетах будет выводиться на экран. После выполнения команды мы получим отчет со списком всех обновленных, а также установленных пакетов.

Затем необходимо установить Development Tools. Это группа инструментов для компиляции ПО из исходного кода. Мы будем использовать следующую команду:

yum -y groupinstall "Development Tools"

Отчет об установке Development Tools

По окончании мы также получим отчет о результатах выполнения команды со списком установленных пакетов.

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

yum -y install screen

Отчет об установке GNU 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

После установки NVM нам нужно будет перелогиниться в систему либо же обновить данные с помощью команды

source ~/.profile

После того, как данные о системе обновлены необходимо узнать доступные версии Node.js с помощью команды

nvm ls-remote

Список доступных версий

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

nvm install 5.1.0

Установка выбранной версии

После установки эта версия будет использоваться по умолчанию. Если на вы установили на сервере несколько версий, то для того, чтобы указать системе какую версию необходимо использовать применяем следующую команду:

nvm use 5.1.0

По умолчанию исполняемый файл Node.js вызывется командой

Установка и настройка Node.js

Если вы используете Node.js как средство серверной разработки для своего сайта или web-приложения, то эта статья для вас, поскольку в ней мы рассмотрим настройку данной программной платформы и правильную организацию структуры папок для корректного функ­цио­ни­ро­ва­ния вашего проекта.

Для начала вам необходимо установить Node.js на свой аккаунт. Скачать любую версию Node.js можно с официального репозитория https://nodejs.org/dist/. На момент написания данного руководства, последним релизом являлась версия v10.6.0, скачать её можно здесь.

Выбирать нужно версию для Linux, битность x64, архиватор GZIP. Скачиваем файл https://nodejs.org/dist/v10.6.0/node-v10.6.0-linux-x64.tar.gz

Для нужной версии вы сможете также установить и необходимые модули (см. ниже).

На хостинге функционирование Node.js реализовано через специальную библиотеку Passenger, которая осуществляет взаимодействие Вашего сайта с обработчиком Node.js

Рассмотрим структуру папок и файлов. Мы предлагаем реализовать ее примерно следующим образом:

  • site-name.com (корневая папка вашего сайта)
  • htdocs
  • www
  • nodejs_app
  • www
  • nodejs_tmp
  • www

Ваша цель — создать идентичную структуру и разместить файлы в соответствующих схеме директориях. Далее мы наполним их содержимым.

Установка Node.js

Чтобы сразу начать пользоваться необходимой вам версией Node (при условии, что Вы уже получили доступ по SSH), можете ввести следующие команды в терминале для загрузки и распаковки архива с файлами:

Работа с .htaccess файлом

Чтобы Passenger мог взаимодействовать с Node.js, в файле .htaccess (мы рекомендуем располагать его здесь ./site-name.com/htdocs/www/.htaccess) необходимо прописать следующее:

PassengerAppRoot /home/hostXXXXXXX/site-name.com/nodejs_app/www PassengerAppType node PassengerStartupFile app.js PassengerNodejs /home/hostXXXXXXX/node/bin/node PassengerRestartDir /home/hostXXXXXXX/site-name.com/nodejs_tmp/www PassengerFriendlyErrorPages on
  • Вместо hostXXXXXXX вы прописываете номер своего аккаунта
  • site-name.com — это имя папки с вашим проектом
  • app.js — название файла, который запускает работу серверной части (вы можете назвать его как захотите, главное, пропишите соответствующее имя в .htaccess)
  • PassengerNodejs — путь до исполняемого файла Node.js
  • PassengerFriendlyErrorPages — опция для отображения ошибок, в случае, когда приложение работает не корректно, или не запускается (по умолчанию — PassengerFriendlyErrorPages off). Данная опция выводит сообщения об ошибке, некоторые предложения по решению проблемы, трассировку и дамп переменных среды выполнения. Рекомендуется включать эту опцию только на этапе разработки. После её окончания удалите или закомментируйте в .htaccess эту опцию.

Включение лога ошибок

При разработке любого сайта или приложения разработчики допускают ошибки. По умолчанию, они записываются в папку logs, которая находится в корне сайта. Также, убедитесь, что у вас включена данная опция в панели управления. Во вкладке «Домены»→«Прикрепление домена», рядом с надписью «Лог-файлы веб сервера» есть переключатель, который включает/выключает данную опцию. После включения, логи начнут писаться в течение 5 минут (при обычной загруженности сервера).

Перезапуск приложения

Файлы restart.txt и always_restart.txt необходимы для того, чтобы при внесении вами каких-либо изменений в рабочие файлы (к примеру, app.js) Passenger, применяя правила записанные в .htaccess, мог перехватывать их и применять в работе сайта. Отличие заключается в том, что restart.txt сработает только один раз, а always_restart.txt перезапускает процесы веб-сервера при каждом поступившем запросе. Рекомендуется использовать always_restart.txt только при разработке. После того, как разработка проекта будет завершена, не забудьте удалить этот файл, чтобы избежать задержек при отображении страницы посетителям.

Если Вы уверены в том, что ваш код работает без багов, но всё-равно видите ошибки на странице, можно принудительно завершить все процессы с помощью следующей команды через SSH-соединение:

killall -2 "Passenger NodeApp"

После чего перезагрузить страницу.

Код для app.js

И напоследок, осталось добавить скрипт для запуска Node в app.js. Ниже представлен код с официального сайта Node.js (в дальнейшем вы можете изменять его по своему усмотрению, сейчас мы лишь хотим убедиться, что всё работает):

const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => < res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); >); server.listen(port, hostname, () => < console.log(`Server running at http://$:$/`); >);

Итак, все настройки произведены. Откройте сайт в новой вкладке. Если выводится Hello world, то всё работает, как и ожидалось. В противном случае, ещё раз пройдите по вышеприведённому алгоритму действий. Возможно, вы что то упустили.

Пример подключения модуля

Чтобы установить какой-либо модуль в директорию с файлами приложения, при этом используя установленную версию Node.js, необходимо для начала прописать путь до исполняемого файла node в .bash_profile (он лежит в корне вашего аккаунта). После этого вы сможете обращаться к нему из любой директории вашего проекта.

Итак, откройте .bash_profile и допишите следующую строку:

PATH=$HOME/.local/bin:$HOME/bin:$HOME/site-name.com/node/bin:$PATH

Для примера, рассмотрим подключение модуля mysql для работы с базой данных (предварительно, создайте таблицу под любым названием и поместите туда несколько записей). Чтобы установить даный модуль, зайдите через SSH-соединение в директорию «nodejs_app/www» и введите в терминале команду:

npm init --force

Таким обазом создастся файл package.json с данными о вашем приложении. После этого наберите команду:

npm install mysql --save-dev

Вы увидите, что автоматически создастся новая директория «node_modules» и подгрузятся необходимые нам для работы файлы.

Также, рекомендуем загрузить 2 часто используемых модуля — fs (для работы с файлами) и util (для красивого вывода объектов в консоль)

npm install fs util --save-dev

Далее, открываем файл нашего приложения app.js и добавляем следующий код:

const fs = require('fs'); const util = require('util'); var log_file = fs.createWriteStream(__dirname + '/debug.log', ); var log_stdout = process.stdout; console.log = function(d) < log_file.write(util.format(d) + '\n'); log_stdout.write(util.format(d) + '\n'); >; const mysql = require('mysql'); const connection = mysql.createConnection(< host : 'localhost', user : 'hostXXXXXXX', password : 'your_password', database : 'your_database_name' >); connection.connect(); connection.query('SELECT * FROM my_table', function (error, results, fields) < if (error) throw error; results.forEach(function(obj) < console.log( util.inspect(obj) ); >); >); connection.end();

В коде выше мы, с помощью модуля fs, создаём новый файл debug.log, в который будем помещать вывод функции console.log

Далее, переопределяем саму функцию console.log, задействуя поток на запись.

Теперь, при помощи модуля mysql, подключаемся к своей БД и выбираем все записи из нужной нам таблицы, прописывая их в созданный нами файл.

Проверим, всё ли сработало: перезагрузите страницу своего сайта и откройте файл debug.log — вы должны увидеть вывод всех записей из таблицы.

Запуск приложений через crontab

Для запуска приложений Node.js через crontab создайте shell скрипт и определите в нём переменную окружения PATH исходя из ваших требований, или можно указать полный путь к бинарному файлу nodejs и скрипту. Простейший Shell скрипт для запуска nodejs приложения:

#!/usr/bin/env sh env PATH=/home/hostXXXXXXX/node-vXX.ZZ.YY/bin:/home/hostXXXXXXX/node-vXX.ZZ.YY/bin:$PATH node example.js

Или команда для запуска целиком:

/home/hostXXXXXX/nodejs/bin/node /home/hostXXXXXX/nodeproject/example.js

Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из панели управления хостингом, раздел «Помощь и поддержка».

Установка Node.js на хостинге cPanel

Node.js — популярная современная технология, которая реализована на JavaScript для создания веб-приложений. Идеально подходит приложениям с высоким вводом-выводом (например, онлайн-чат, ресурсы с потоковыми видео). Node.js имеет открытый исходный код, является полностью бесплатным и пользуется большим спросом в разработчиков по всему миру.

С помощью cPanel можно развернуть свой Node.js на хостинге. Через панель это выполняется намного проще и быстрее. Компания ГиперХост предоставляет поддержку модуля Node.js на тарифах виртуального хостинга, VPS/VDS с cPanel.

Добавление Node.js приложения

  1. Первым делом заходим в учетную запись cPanel.
  2. С главной страницы блока “Программное обеспечение” переходим в “Настройка Node.js приложений”.
  3. Создаем новый проект через кнопку “Создать приложение”.
  4. В открытой окне заполняем поле формы.
  • Версия Node.js — с выпадающего списка нужно выбрать версию Node.js вашего проекта.
  • Режим приложения — выберите в каком состоянии находится приложение ( в стадии разработки или готов к развертыванию в производственной среде).
  • Корневой каталог приложения — указываем папку на хостинге, куда будут потом загружены файлы приложения.
  • URL приложения — задаем адрес по каком будет открываться приложение относительно вашего домена.
  • Файл запуска приложения — название файла который будет отрабатывать первым при запуске приложения (с расширением .js ).
  • Файл логов Passenger — путь к файлу, где будут храниться логи.

Сверяем все данные и для завершения создания жмем на кнопку “Создать”.

6. После чего вы можете ввести значение URL приложения и открыть тестовую страницу приложения Где будет указана строка “It works!” и указанная версия Node.js.

7.Загружаем файлы проекта в корневой каталог приложения.

8.Дальше нужно установить NPM-пакеты, указанные в файле package.json для корректной работы приложения.

Сделать это можно через опцию “Действие”. Через эту опции можно редактировать данные внесенные ранее по проекту, управлять работой приложения ( включать/выключать, перезапускать, удалить и т.д.). Для установки NPM-пакетов выбираем действ “Редактировать приложение”, в открытой вкладке жмем на кнопку “Установить NPM-пакеты”.

После чего перезагружаем приложения через опцию “Действия”, и проект готов к работе.

Если есть необходимость вносить настройки вручную через консоль, войдите на сервер по SSH и для соединения с вашим Node.js-проектом введите в консоль скопированный. строку с панели ( с блока “Действия” кликаем на “Редактировать приложение”).

Установка Node.js на VDS

Рассмотрим процесс установки Node.js и менеджера пакетов npm на VDS с Debian или Ubuntu.

Подключитесь к VDS через SSH по нашей статье.

Перед установкой стоит проверить актуальность вашей системы. На устаревшие ОС установить Node.js скорее всего не получится. Здесь можно проверить список актуальный версий Ubuntu, а здесь Debian.

Узнать версию Ubuntu можно командой

Устанавливаем пакеты nodejs и npm из официальных репозиториев

Добавьте в систему репозиторий с желаемой версией (в примере используется 19 версия, но вы можете указать любую из доступных, просто поменяв число в команде)

curl -fsSL https://deb.nodesource.com/setup_19.x | bash —

Запустите установку и дождитесь её завершения

apt-get install -y nodejs

На этом установка выполнена и можно проверить версии установленных утилит:

# node -v v19.1.0 # npm -v 8.19.3 

Установка с помощью nvm

nvm позволяет установить несколько версий Node.js одновременно, и быстро переключаться между ними. Кроме того, такой способ не требует привелегированных прав и позволяет установить Node.js локально любому пользователю. С помощью nvm можно поставить Node.js даже на хостинге.

Сперва скачайте скрипт установки nvm и запустите его

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

Проверьте список доступных версий

Выберите желаемую версию и установите её

nvm install v18.12.1 # node -v v18.12.1 

Бывает так, что окружение пользователя не обовилось и node -v не отрабатывает или показывает не ту версию. Тогда обновите окружение командой

Если вдруг оказалось, что проект не самый новый и требуется более ранняя версия, то просто установите её

nvm install v10.24.1 # node -v v10.24.1 

А при необходимости переключиться обратно выполните

nvm use v18.12.1 # node -v v18.12.1 

Подробно озакомиться с проектом nvm вы можете на его странице в GitHub.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *