Вместо эпиграфа:
Эта заметка-шпаргалка по грамотной установке NodeJS на сервер для людей, которые как и я практически ничего не понимают не только в программировании, но и в Линуксе как таковом. Но мы постараемся свести ваше общение к Линуксу к тыканию буквально по одной единственной кнопочке, по крайней мере пока вы не освоитесь.
Составляется с использованием ответов не только сообщества Тостера, но и Линукс-сообщества в целом, Гугла и личной практики.
В частности, мне помогали: lem_prod, Антон Уланов, inf (список будет расширяться по мере работы над шпаргалкой)
Текущая версия шпаргалки: (v. 0.0.9)
Как человек, только начинающий изучать nodejs и довольно поверхностно знакомый с Линуксом, я, в частности, не нашёл НИ ОДНОГО упоминания о том как пошагово и доступно установить NodeJS на сервер c Убунту 14.04.03 LTS.
Краткий список вопросов, с которыми я столкнулся и по части которых в настоящее время остервенело провожу раскопки:В: Можно ли создавать папку проекта в отдельной папке в линукс?О: Да. В целом, как я понял - даже желательно.
В: Нужно ли (при наличии в системе питона 2.7 к примеру) ставить для ноды apt-get install python-software-properties
?
О: Нет, в случае применения текущей шпаргалки.
В:Нужно ли делать apt-get install npm
если считается что он УЖЕ включён в Nodejs?О: Нет, по этой шпаргалке вы получаете пятую версию Ноды, в состав которой npm уже включён.
В: Почему при попытке поставить apt-get install express
система говорит мне что ей нужен apt-get install node-express
и одно ли это и то же, что и expressjs?О: В: В
какие КОНКРЕТНО папки падает сама нода и её модули? Необходимо ли определять им конкретный путь установки относительно места которое заготовлено под проект (очевидно что делать проект в папке с самой нодой не стоит, тут опустим хотя бы часть КЭПовства)?О:В: Необходимо ли В КАЖДОЙ папке (например при наличия в папке myapp создаётся папка для раздельного chat), находясь в ней говорить консоли npm install --save
?
О:
Эти, и ещё огромное количество вопросов встают перед начинающими. Да, большинство будет задавать ещё большую кучу вопросов. Например -
"зачем вам разворачивать проект сразу на сервере в сети? Не проще ли все делать на компе?"
Давайте вынесем это за рамки моего вопроса. Потому что, во-первых - нет, мне так не проще. Во вторых - давайте предположим что это (к примеру) - некоторый факультатив. В-третьих - в Ноде для того и описаны директивы NODE_ENV с параметрами продакшен и разработка, чтобы это всё было возможно, не так ли? И хоть примеров работы с Нодой в локали и на серверах описано немало - конкретики технического толка в них критично мало.
Я прошу сообщество по возможности ответить на мои (быть может смешные или наивные в чём-то) вопросы, из которых я мог бы собрать гайд для такого вот факультатива по правильному развёртыванию node.js на боевом сервере для новичков, тем более что таких примеров я не нашел нигде в сети. Так почему бы не собрать ещё один, с неожиданным подходом к установке этого замечательного сервера?
параметры проекта:
- WDS сервер от %%известный_хостинг_нейм%%, обойдёмся без рекламы
- процессор одноядерный, с частотой в 1ГГц
- 512 оперативки
- 10Гб места.
Для начала - самое оно.
Но начнём, пожалуй:
0/
useradd vasya
//
Условимся с вами о том, что все дальнейшие операции мы выполняем от лица простого юзера Васи Пупкина, которого создадим от лица рута.
1/
sudo apt-get update
//
Так вы обновите списки источников обновок для сервера.
2/
sudo apt-get ugrade
//
Обновим же сервер!
3/
sudo apt-get install htop
//
Oчень удобно видеть процессы, расход памяти и так далее. пишем в консоли htop
и пользуемся.
4/
sudo apt-get install mc
//
Весьма удобный файловик. Хотим попользоваться - пишем в консоли mc
.
5/
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
//
Ставим NodeJS версии 5.х
6/
apt-get install -y nodejs --save
//npm
ВКЛЮЧЁН В ПАКЕТ С НОДОЙ,
ставить его отдельно теперь не нужно.
7/
npm install -g supervisor --save
//
Установим модуль отслеживающий изменения в файлах и папках вашего проекта.
8/
npm install -g forever --save
//
Установим модуль позволяющий создавать/(пере)запускать главный файл (к примеру - тот же app.js)
9/
npm install -g express-generator --save
//
Установим шаблонизатор, разворачивающий проект с первичными папками.
10/
11/
Флаги:
*
--save: записывает устанавливаемый модуль в файл package.json в котором хранится описание проекта и его зависимости (штука действительно полезная) Черты у флага команды две, это не опечатка.
**
-g: устанавливает глобально для всей операционной системы.
***
-y>: является сокращением флага "yes".
...продолжение следует. Хотите помочь? Присоединяйтесь! ;))