Как подключить NodeJS

Ниже доработанная копия оригинала из документации ISPManger

Чтобы включить Node.js для сайта, при создании или редактировании WWW-домена:

Перейдите в панель управления хостингом  в раздел "Сайты", нажмите на сайт и кнопку "Редактировать" > "Изменить"

  1. В поле Обработчик выберите Node.js. (Обратите вниманиеЕсли Node.JS нет в списке, то тут два варианта, у вас нет его в тарифе, либо он не подключен к тарифу. Обратитесь в поддержку для решения вопроса.)
  2. Укажите Версию Node.js. Версия будет установлена только для пользователя — владельца сайта. Доступна последняя версия Node.js и LTS-версии, начиная с 12.13.0.

  3. Выберите Способ подключения:

    • Сокет файл — приложение Node.js будет использовать для работы Unix-сокеты.
    • Порт — приложение Node.js будет использовать для работы TCP-порт;

Конфигурационный файл


Приложение Node.js содержит конфигурационный файл package.json. Конфигурационный файл используется для установки зависимостей через npm и управления запуском приложения. Подробнее о формате конфигурационного файла см. в официальной документации Node.js.

Содержимое package.json по умолчанию

{
  "name": "doc.test",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
 

Чтобы изменить конфигурационный файл, перейдите в Сайты → выберите сайт → кнопка Файлы конфигурации. Чтобы изменить путь к приложению сайта, укажите нужный путь в параметрах main и start.

Обратите внимание!

Не рекомендуем менять файлы конфигурации, если вы полностью не уверены в своих действиях. Перед сохранением конфигурации ISPmanager проверяет только синтаксис файлов, а не корректность настроек.

Чтобы установить пакеты, указанные в конфигурационном файле, перейдите в Сайты → выберите сайт → меню (оно справа в строке сайта, три точки) 

→ Npm install.

 

Диагностика приложения


Менеджер процессов

Для работы с Shell вам надо подключить его, для этого обратитесь в поддержку, и если ваш тариф позволяет, вам подключат shell доступ. 

Вы можете проверить работу приложения сайта через менеджер процессов pm2:

  1. Подключитесь к серверу по ssh и авторизуйтесь под учётной записью владельца сайта, но лучше использовать консоль в разделе "Сайты" > строка сайта > Меню справа (три точки) > Shell клиент  (Описание будет ниже)

  2. Выведите список приложений: 

    pm2 list
     
     

    Пример ответа

    | id  │ name            │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
    ├─────┼─────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
    │ 0   │ example.com     │ default     │ N/A     │ fork    │ 317423   │ 13m    │ 2    │ online    │ 0%       │ 60.6mb   │ www-root │ disabled │
    │ 1   │ example2.com    │ default     │ N/A     │ fork    │ 316830   │ 19m    │ 0    │ online    │ 0%       │ 61.7mb   │ www-root │ disabled |
     
  3. Запросите информацию о нужном приложении: 

    pm2 info <name>
     

    или

    pm2 info <id>
     
    Пояснения к команде
    <name> — имя сайта. Например, example.com.
    <id> — id процесса приложения

    Пример ответа

    Describing process with id 0 - name example.com
    | status            │ online                                                    │
    │ name              │ example.com                                               │
    │ namespace         │ default                                                   │
    │ version           │ N/A                                                       │
    │ restarts          │ 2                                                         │
    │ uptime            │ 15m                                                       │
    │ script path       │ /var/www/www-root/data/.nvm/versions/node/v18.1.0/bin/npm │
    │ script args       │ start                                                     │
    │ error log path    │ /var/www/www-root/data/.pm2/logs/example.com-error.log    │
    │ out log path      │ /var/www/www-root/data/.pm2/logs/example.com-out.log      │
    │ pid path          │ /var/www/www-root/data/.pm2/pids/example.com-0.pid        │
    │ interpreter       │ node                                                      │
    │ interpreter args  │ N/A                                                       │
    │ script id         │ 0                                                         │
    │ exec cwd          │ /var/www/www-root/data/www/example.com                    │
    │ exec mode         │ fork_mode                                                 │
    │ node.js version   │ 18.1.0                                                    │
    │ node env          │ N/A                                                       │
    │ watch & reload    │ ✘                                                         │
    │ unstable restarts │ 0                                                         │
    │ created at        │ 2022-05-11T04:25:03.051Z                                  |
     

Служебные каталоги

При работе с сайтами с Node.js в домашней директории пользователя создаются служебные каталоги используемых утилит:

  • /var/www/ваш-логин/data/.npm/ — данные пакетного менеджера Node.js;
  • /var/www/ваш-логин/data/.nvm/ — установленные версии Node.js;
  • /var/www/ваш-логин/data/.pm2/ — данные менеджера процессов pm2.

Эти директории нужны для корректной работы Node.js. Если их удалить, директории будут пересозданы при следующем редактировании сайта, но часть информации может быть утеряна.

Управление сайтом через shell-клиент


Владелец сайта может выполнять команды Node.js и npm через shell-клиент. Эта возможность доступна, если в настройках пользователя включена опция Доступ к shell. Чтобы открыть shell-клиент, перейдите в Cайты → выберите сайт → меню 

→ Shell-клиент.
При запуске shell-клиента панель управления автоматически:

  • откроет домашнюю директорию сайта;
  • добавит пути к Node.js для выбранного сайта в переменную PATH.

Чтобы закрыть shell-клиент, нажмите

Особенности работы


  • При выборе обработчика Node.js установка CMS или конструктора сайта недоступна.
  • Если содержимое сайта с Node.js изменилось, нужно перезапустить приложение сайта для применения изменений: Сайты → выберите сайт → меню  → Перезапустить.
  • При восстановлении сайта с Node.js из резервной копии ISPmanager попытается использовать сохранённые настройки порта или сокета. Если порт или сокет занят, для сайта будет выделен новый порт или сокет.