Часто возникает необходимость поднять тестовый север для разработки сайта работающего с БД. Т.к. мы работаем с NodeRed, нам удобно будет работать с сервером работающем на node js. Если для WordPress существует прекрасная система local, то для node js готовой системы я не знаю. Накидаю основные шаги для подъема такого сервера.
Возможны варианты, виртуальный сервер, docer и т.д. Мы рассмотрим использование виртуального сервера с установленной ubuntu. Текущая стабильная версия Ubuntu 20.04.
Как поднять виртуальный сервер? Просто: отдадим часть ресурсов нашего компьютера под будущий сервер. Для этого установим программу VirtualBox. Установки по умолчанию достаточно для начала работы.
Для запуска виртуальной машины её нужно создать. Важные настройки: оперативная память, размер дискового пространства. До первого запуска нужно изменить параметры сетевого адаптера. Я устанавливаю «Сетевой мост». При первом запуске машины нужно будет указать скаченный файл дистрибутива iso.
Для начальной настройки сервера поможет статья https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04-ru. Много хорошего материала на сайте https://www.digitalocean.com и на русском и на английском языке. Ссылки на них у меня будут появляться часто. Для работы нам понадобится SSH.
sudo apt install openssh-server
ufw allow OpenSSH
ufw enable
Ну что, получилось поднять сервер? Хорошо. Едем дальше.
Давайте поднимем базу данных. Для большинства домашних задач достаточно бд MYSQL. Обычно, на ubuntu я ставлю MariaDB. Сравнение баз здесь. Описание БД здесь. Описание установки здесь.
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
Для работы с базой данных, а точнее с данными в БД нужен инструмент. Мне не удалось найти приличного инструмента для node js, поэтому я по старинке пользуюсь 2 инструментами: MySQL Workbench и phpmyadmin. Каждый решает свои задачи и делает это очень хорошо. Для phpmyadmin нужен LAMP. При создании таблиц в Workbench, перед сохранением таблицы, убирайте оператор VISIBLE (UNIQUE INDEX name_UNIQUE
(name
ASC) VISIBLE)). MariaDB его не понимает. Связи удобнее создавать в Workbench, а работать с запросами и данными, (мне) удобнее в phpmyadmin.
«LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый во Всемирной паутине. LAMP назван по первым буквам входящих в его состав компонентов:
- Linux — операционная система Linux;
- Apache — веб-сервер;
- MariaDB / MySQL — СУБД;
- PHP — язык программирования, используемый для создания веб-приложений (помимо PHP могут подразумеваться другие языки, такие как Perl и Python).»
https://ru.wikipedia.org/wiki/LAMP
Как всегда есть отличная статья по установке.
Устанавливаем phpmyadmin.
Устанавливаем node js. Не надо сразу копипастить, прочитайте. Там 3 способа. Я использовал последний. Выбирайте осмысленно.
Для фронта я использую VUE JS. Отличная вещь!
npm install -g @vue/cli
Ставим git. Хотел написать слово «обязательно», но это дело хозяйское.
git --version //проверка
sudo apt update
sudo apt install git
git --version
git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"
https://www.digitalocean.com/community/tutorials/how-to-install-git-on-ubuntu-20-04#setting-up-git
Установка express https://expressjs.com/ru/starter/installing.html
Пример разработки приложения: https://bezkoder.com/vue-js-node-js-express-mysql-crud-example/
Основное всё. Ниже полезные ссылки, не всем нужны, но посмотреть стоит:
PASPORT
http://www.passportjs.org/
JWT
https://jwt.io/
https://getbootstrap.com/docs/5.0/getting-started/introduction/
EXPRESS
https://expressjs.com/ru/guide/routing.html
Так… все работает, а как писать программу? Надо? Точно? Легко. Писать будем в любимой среде используя любимый редактор VS Code.
Есть несколько статей о том, как подключиться к удалённой машине через SSH. Меньше букв в этой.
Ещё раз про git – надо. Виртуальная машина может сломаться при отключении питания и т.д. Надо.
Давайте выпустим в мир наш сайт построенный на node js. Пока наше приложение работает на 3000 порту, а надо бы 80. Но 80 порт требует прав root, а это опасно. Для запуска сайта можно использовать менеджер PM2. Устанавливаем Nginx . Устанавливаем PM2.