Гид по технологиям

Установка Monica PRM на Ubuntu 18.04

5 min read Сервер Обновлено 16 Nov 2025
Monica на Ubuntu 18.04 — установка и настройка
Monica на Ubuntu 18.04 — установка и настройка

Краткое описание

Monica — бесплатное open-source веб-приложение для Personal Relationship Management, написанное на Laravel. Оно хранит важные сведения о друзьях и родственниках, умеет напоминать о днях рождения, отслеживать переписки и настраиваемые секции на карточке контакта.

Важно: инструкция рассчитана на Ubuntu 18.04 и версии компонентов, указанные в шагах (PHP 7.2, Node.js 10). Если вы используете другие версии ОС/пакетов, проверьте совместимость перед началом.

Требования

  • Сервер с Ubuntu 18.04.
  • С root-доступ или учетная запись с правами sudo.

Шаг 0 — подготовка системы

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

apt-get update -y
apt-get upgrade -y

Перезагрузите систему по необходимости:

reboot

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

Установка Nginx, MariaDB и PHP

Установите веб-сервер, СУБД, PHP-FPM и дополнительные модули, требуемые Monica:

apt-get install nginx mariadb-server php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-xml php7.2-mysql php7.2-curl php7.2-zip php7.2-intl git wget unzip -y

После установки убедитесь, что службы запущены:

systemctl status nginx
systemctl status mariadb
systemctl status php7.2-fpm

Настройка MariaDB

Запустите скрипт безопасности MariaDB и ответьте на подсказки (удаление анонимных пользователей, запрет удалённого входа root и т.д.):

mysql_secure_installation

Пример ответов для базовой безопасности:

Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Затем войдите в консоль MariaDB и создайте базу данных и пользователя для Monica. Замените ‘password’ на надёжный пароль:

mysql -u root -p
MariaDB [(none)]> create database monica;
MariaDB [(none)]> create user monica@localhost identified by 'password';
MariaDB [(none)]> GRANT ALL ON monica.* TO 'monica'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Важно: храните пароль безопасно. На продуктивном сервере рассмотрите использование выделенного пользователя и ограничение подключений по хосту.

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

Composer — менеджер зависимостей PHP. Скачайте и проверьте установщик:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Проверьте контрольную сумму и установите Composer:

HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Пример вывода успешной установки:

All settings correct for using Composer
Downloading...

Composer (version 1.8.4) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Установите Node.js (в инструкции используется 10.x):

curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs

Если вы планируете использовать более новые сборки фронтенда или пакеты, проверьте совместимость Node.js и npm с проектом Monica.

Установка и подготовка Monica

Создайте каталог веб-приложения и загрузите код Monica из репозитория:

mkdir -p /var/www/monica
cd /var/www/monica
git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.1.1

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

Переименуйте файл окружения и отредактируйте параметры подключения к базе данных:

mv .env.example .env
nano .env

Внутри .env задайте параметры базы данных:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
#DB_UNIX_SOCKET=/var/run/mysqld/mysqld.sock
DB_DATABASE=monica
DB_USERNAME=monica
DB_PASSWORD=password

Установите зависимости PHP через Composer:

composer install --no-interaction --no-suggest --no-dev --ignore-platform-reqs

Установите фронтенд-зависимости и соберите ассеты:

npm install
npm run production

Генерация ключа приложения и начальная настройка базы данных:

php artisan key:generate
php artisan setup:production

В процессе setup:production подтвердите действия, когда отобразится приглашение. Пример вывода:

You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:
> yes

-----------------------------
|
| Welcome to Monica v2.1.1
|
-----------------------------
| You can now register to the first account by opening the application:
| URL:      http://localhost
-----------------------------
Setup is done. Have fun.

После успешной установки назначьте корректные права на директорию приложения:

chown -R www-data:www-data /var/www/monica

Настройка Nginx для Monica

Создайте виртуальный хост для Monica:

nano /etc/nginx/sites-available/monica.conf

Вставьте конфигурацию (замените example.com на ваш домен):

server {
    listen 80;
    listen [::]:80;

    server_name example.com;
    root /var/www/monica/public;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    }
}

Активируйте конфигурацию и перезапустите Nginx:

ln -s /etc/nginx/sites-available/monica.conf /etc/nginx/sites-enabled/
systemctl restart nginx
systemctl status nginx

Пример вывода systemd показывает активный сервис nginx. Если сервис не запускается, проверьте синтаксис конфигурации:

nginx -t

Доступ к веб-интерфейсу

Откройте в браузере URL вашего сервера (http://example.com) и зарегистрируйте первую учётную запись.

Главный экран Monica PRM

Установщик Monica PRM

Панель управления Monica Personal Relationship Manager

Поздравляем — Monica установлена. Теперь вы можете добавлять контакты, настраивать напоминания и расширять функциональность.

Критерии приёмки

  • Веб-интерфейс открывается по заданному домену и отображает страницу регистрации.
  • Успешная регистрация первой учётной записи и вход в панель.
  • Все миграции базы данных выполнены без ошибок (команда setup:production завершилась успешно).
  • Доступы к каталогу приложения принадлежат www-data и права корректны.

Чек-лист для ролей

  • DevOps / Администратор:

    • Обновил систему и установил пакеты.
    • Настроил MariaDB и создал базу/пользователя.
    • Настроил Nginx и PHP-FPM.
    • Задал права на /var/www/monica.
  • Разработчик / Системный интегратор:

    • Проверил версии библиотек и зависимостей.
    • Собрал фронтенд и провёл smoke-тесты UI.
  • Менеджер продукта / Владелец данных:

    • Убедился, что первая учётная запись создана.
    • Проверил корректность seed-данных, если использовались.

Устранение неполадок (Troubleshooting)

  • Nginx не стартует: выполните nginx -t и проверьте ошибки в /var/log/nginx/error.log.
  • Ошибки PHP-FPM при исполнении .php: проверьте путь сокета fastcgi_pass и состояние php7.2-fpm.
  • Проблемы с миграциями: проверьте .env (корректность DB_*), логи storage/logs/laravel.log и права файлов.

План отката (Rollback)

  1. Остановить веб-сервер: systemctl stop nginx.
  2. Восстановить резервную копию базы данных (если есть): mysql -u root -p monica < backup.sql.
  3. Вернуть исходную директорию с кодом (git checkout прежний-тег или восстановить из бэкапа).
  4. Перезапустить сервисы: systemctl start php7.2-fpm && systemctl start nginx.

Когда этот способ не подойдёт (контрпримеры)

  • Если вы хотите использовать контейнеры (Docker/Kubernetes), то установка на хост описанная здесь не оптимальна: лучше развернуть Monica через Docker-образ или Helm-чарты.
  • Для Ubuntu 20.04 / 22.04 могут потребоваться более новые версии PHP (7.4, 8.0) и иные пакеты — следуйте официальной документации Monica для выбранной версии.

Советы по безопасности и конфиденциальности

  • Используйте HTTPS (Let’s Encrypt) в продакшене.
  • Ограничьте доступ к MariaDB только с localhost или через внутреннюю сеть.
  • Регулярно обновляйте зависимости и систему безопасности.
  • Для персональных данных рассмотрите шифрование бэкапов и настройку резервного копирования.

Факт-бокс

  • ОС: Ubuntu 18.04.
  • PHP: 7.2 (в инструкции).
  • Node.js: 10.x (в инструкции).
  • База данных: MariaDB.

Короткая экспертная мысль

Эксперт по DevOps: “Для стабильной работы Monica в продакшне рекомендую контейнеризацию и централизованный мониторинг — это упростит обновления и аварийное восстановление.”

Совместимость и миграция

  • При миграции с другой версии Monica проверьте релиз-ноуты проекта на предмет изменений в миграциях и зависимости.
  • Перед обновлением создавайте бэкап базы и файлов приложения.

Краткое резюме

Monica можно развернуть на Ubuntu 18.04 за счёт стандартного стека: Nginx + PHP-FPM + MariaDB + Composer + Node.js. Инструкция охватывает установку, настройку окружения, сборку фронтенда и выполнение миграций. Следуйте чек-листам и рекомендациям по безопасности перед переводом сервера в продуктивный режим.

Важно: если у вас остались вопросы по конкретным шагам (сертификаты, Docker-контейнеры, версии PHP), укажите текущую конфигурацию — помогу адаптировать инструкции.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство