Как установить Monica Personal Relationship Manager на CentOS 8
На этой странице
- Функции
- Требования
- Предпосылки
- Начальные шаги
- Шаг 1. Установите PHP
- Шаг 2. Установите клиент acme.sh и получите сертификат Lets Encrypt (необязательно)
- Шаг 3. Установите MariaDB и создайте базу данных для Моники.
- Шаг 4. Установите и настройте NGINX
- Шаг 5. Установите Node.js и npm
- Шаг 6. Установите Composer
- Шаг 7. Установите и настройте Monica
- Шаг 8. Завершите установку Monica.
- Ссылки
Monica — это веб-приложение для управления личными отношениями (PRM) с открытым исходным кодом, предназначенное для организации взаимодействия с вашими близкими. Думайте об этом как о CRM (популярный инструмент, используемый отделами продаж в корпоративном мире) для ваших друзей или семьи. Моника позволяет людям отслеживать все важное о своих друзьях и семье. Как деятельность, которая делается с ними. Когда вы в последний раз кому-то звонили. То, о чем вы говорили. Это поможет вам запомнить имя и возраст детей. Это также может напомнить вам позвонить кому-то, с кем вы давно не разговаривали. В этом руководстве рассматривается установка Monica на CentOS 8.
Функции
- Добавление контактов и управление ими
- Определение отношений между контактами
- Напоминания
- Автонапоминания о днях рождения
- Оставайтесь на связи с контактом, отправляя напоминания с заданным интервалом.
- Управление долгами
- Возможность добавлять примечания к контакту
- Возможность указать, как вы познакомились с кем-то
- Управление действиями с контактом
- Управление задачами
- Управление подарками
- Управление адресами и различные способы связи с кем-либо
- Управление типами полей контактов
- Управление контактными животными
- Базовый журнал
- Возможность указать, как прошел день
- Загрузить документы и фотографии
- Экспорт и импорт данных
- Экспортировать контакт в формате vCard
- Возможность устанавливать собственный пол
- Возможность определять пользовательские типы действий
- Возможность добавлять контакты в избранное
- Отслеживание разговоров в социальных сетях или SMS.
- Несколько пользователей
- Ярлыки для организации контактов
- Возможность определить, какой раздел должен отображаться на контактном листе.
- Мультивалютность
- Многоязычный
- API, охватывающий большую часть данных
Требования
- СентОС 8
- Гит
- NPM (диспетчер пакетов узла)
- PHP версии 7.1 или новее
- MySQL
- HTTP-сервер с поддержкой PHP (например, Apache, Nginx, Caddy...)
- Композитор
- Необязательно: Redis или Beanstalk.
Предпосылки
- Операционная система CentOS 8.
- Пользователь без полномочий root с правами
sudo
.
Начальные шаги
Проверьте свою версию CentOS:
cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)
Настройте часовой пояс:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Обновите пакеты операционной системы (программное обеспечение). Это важный первый шаг, поскольку он гарантирует наличие последних обновлений и исправлений безопасности для пакетов программного обеспечения вашей операционной системы по умолчанию:
sudo yum update -y
Установите несколько важных пакетов, необходимых для базового администрирования операционной системы CentOS:
sudo yum install -y curl wget vim git unzip socat bash-completion epel-release gcc-c++ make libpng-devel
Шаг 1 - Установите PHP
Установите PHP, а также необходимые расширения PHP:
sudo yum install -y php php-cli php-fpm php-common php-mbstring php-xml php-mysqlnd php-curl php-zip php-intl php-bcmath php-gd php-json php-gmp
Чтобы показать PHP, скомпилированный в модулях, вы можете запустить:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Проверьте версию PHP:
php --version
# PHP 7.2.11-1-(cli) (built: Oct 26 2019 14:14:18) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.11-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
Запустите и включите службу PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Шаг 2. Установите клиент acme.sh и получите сертификат Lets Encrypt (необязательно)
Защищать свой сайт с помощью HTTPS не обязательно, но это хорошая практика для защиты трафика вашего сайта. Чтобы получить сертификат TLS от Lets Encrypt, мы будем использовать клиент acme.sh. Acme.sh — это простое программное обеспечение оболочки UNIX для получения сертификатов TLS от Lets Encrypt без каких-либо зависимостей.
Загрузите и установите acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail
source ~/.bashrc
cd ~
Проверьте версию acme.sh:
acme.sh --version
# v2.8.2
Получите сертификаты RSA и ECC/ECDSA для своего домена/имени хоста:<br>
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Если вам нужны поддельные сертификаты для тестирования, вы можете добавить флаг --staging
к приведенным выше командам.
После выполнения приведенных выше команд ваши сертификаты и ключи будут в:
- Для RSA: каталог
/home/username/example.com
. - Для ECC/ECDSA: каталог
/home/username/example.com_ecc
.
Чтобы просмотреть список выданных сертификатов, вы можете запустить:
acme.sh --list
Создайте каталог для хранения сертификатов. Мы будем использовать каталог /etc/letsencrypt
.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Установите/скопируйте сертификаты в каталог /etc/letsencrypt.
# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
Все сертификаты будут автоматически обновляться каждые 60 дней.
После получения сертификатов выйдите из-под пользователя root и вернитесь к обычному пользователю sudo:
exit
Шаг 3. Установите MariaDB и создайте базу данных для Моники.
Установите сервер базы данных MariaDB:
sudo yum install -y mariadb-server
Проверьте версию MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Запустите и включите службу MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Запустите скрипт установки mysql_secure
, чтобы улучшить безопасность MariaDB, и установите пароль для пользователя root
MariaDB:
sudo mysql_secure_installation
Ответьте на каждый из вопросов:
Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
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 как пользователь root:
sudo mysql -u root -p
# Enter password
Создайте пустую базу данных MariaDB и пользователя для Monica и запомните учетные данные:
mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;
Выход из MariaDB:
mariadb> exit
Замените dbname,
имя пользователя
и пароль
своими именами.
Шаг 4 — Установите и настройте NGINX
Monica прекрасно работает с большинством основных программ веб-серверов с поддержкой PHP, но в этом руководстве мы будем использовать NGINX. Не стесняйтесь использовать Apache, если вы предпочитаете его NGINX.
Установите НГИНКС:
sudo yum install -y nginx
Проверьте версию NGINX:
sudo nginx -v
# nginx version: nginx/1.14.2
Запустите команду sudo vim /etc/nginx/conf.d/monica.conf
и настройте NGINX для Monica.
server {
listen 80;
listen 443 ssl;
server_name example.com;
root /var/www/monica/public/;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECC
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
index index.php;
charset utf-8;
location ^~ /storage {
deny all;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
}
Тестовая конфигурация NGINX:
sudo nginx -t
Перезагрузите NGINX:
sudo systemctl reload nginx.service
Шаг 5 — Установите Node.js и npm
Установите Node.js:
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs
Проверьте версии Node.js и npm:
node -v && npm -v
# v12.13.1
# 6.12.1
Шаг 6 - Установите Композитор
Установить Композитор:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Проверьте версию Composer:
composer --version
# Composer version 1.9.1 2019-11-01 17:20:17
Шаг 7 - Установите и настройте Monica
Создайте пустую корневую папку документа, в которую должна быть установлена Monica:
sudo mkdir -p /var/www/monica
Перейдите в корневую папку документа:
cd /var/www/monica
Измените владельца папки /var/www/monica
на пользователя johndoe:
Не забудьте заменить \johndoe\ своим именем пользователя.
sudo chown -R johndoe:johndoe /var/www/monica
Клонируем на него репозиторий моники:
git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.15.2
ЗАМЕЧАНИЕ. Используйте помеченную версию Monica, так как основная ветка не всегда может быть стабильной. Найдите последнюю официальную версию на странице релизов на Github и обновите ее до последней версии, указав указанный выше номер.
Чтобы создать свою версию всех переменных среды, необходимых для работы проекта, выполните:
cp .env.example .env
Обновите .env
в соответствии со своими потребностями. Не забудьте установить DB_USERNAME
и DB_PASSWORD
с настройками, которые использовались позади. Вам нужно настроить почтовый сервер, чтобы регистрация и напоминания работали корректно.
Запустите composer install --no-interaction --no-suggest --no-dev
, чтобы установить все пакеты.
Запустите php artisan key:generate
, чтобы сгенерировать ключ приложения. Это автоматически установит правильное значение для APP_KEY
.
Запустите php artisan setup:production -v
, чтобы запустить миграцию, заполнить базу данных и папки с символическими ссылками.
Установите соответствующие права собственности и разрешения:
sudo chown -R nginx:nginx /var/www/monica
sudo chmod -R 775 /var/www/monica/storage
Запустите sudo vim /etc/php-fpm.d/www.conf
и установите для пользователя и группы значение nginx
. Первоначально он будет установлен для пользователя и группы apache
.
sudo vim /etc/php-fpm.d/www.conf
Перезапустите php-fpm.service:
sudo systemctl restart php-fpm.service
Шаг 8. Завершите установку Monica.
Теперь откройте веб-браузер и введите URL-адрес http://example.com. Вы будете перенаправлены на следующую страницу:
Укажите свой адрес электронной почты, имя и пароль. Затем нажмите на кнопку Зарегистрироваться. Вы должны увидеть панель инструментов Monica на следующей странице:
Ссылки
- https://www.monicahq.com/
- https://github.com/monicahq/monica