Установка и настройка сервера календаря и адресной книги Baikal на Linux CentOS

Сервер Baikal устанавливается как веб-приложение. В данной инструкции мы рассмотрим установку и настройка веб-сервера, приложения Baikal и подключение клиентов. Примеры команд, представленные здесь будут приведены как для CentOS 7, так и 8.
Готовим систему
Настройка веб-сервера
Установка NGINX
Установка и настройка СУБД
PHP и необходимые компоненты
Настройка виртуальных доменов
Ставим сервер Baikal
Загрузка и распаковка
Подготовка базы данных
Завершение установки
Создание пользователя с календарем и адресной книгой
Настройка клиентов
Outlook
Thunderbird
Подготовка сервера
Перед настройкой сервера выполним предварительные действия.
1. Настройка брандмауэра
Откроем порты 80 и 443, которые используются для веб-запросов:
firewall-cmd --permanent --add-port={80,443}/tcp
firewall-cmd --reload
Более подробнее про настройку брандмауэра с помощью firewalld можно прочитать в инструкции Настройка firewalld в CentOS.
2. Отключение SELinux
Для выключения selinux вводим 2 команды по очереди:
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
* первая команда отключит selinux для текущей загрузки, вторая не даст стартовать selinux при включении сервера.
Настройка веб-сервера
Мы будем поднимать веб-сервер на базе NGINX + MariaDB + PHP. Рассмотрим установку каждого из компонентов.
NGINX
Выполним установку командами.
а) на CentOS 8:
dnf install nginx
б) на CentOS 8:
yum install epel-release
yum install nginx
После установки пакета, разрешаем автозапуск и стартуем сервер:
systemctl enable nginx --now
Открываем браузер и заходим по адресу http://<IP-адрес сервера> — мы должны увидеть стартовую страницу NGINX:
MariaDB
Для установки СУБД вводим команду:
yum install mariadb-server
Запускаем сервер баз данных и разрешаем автозапуск:
systemctl enable mariadb --now
Задаем пароль для суперпользователя mariadb:
mysqladmin -u root password
PHP и компоненты
Для работы приложения Baikal необходим PHP версии 7 и выше. В зависимости от версии CentOS выполним команды по установке.
а) если CentOS 8:
dnf install php php-fpm php-mysqli php-xml php-json
б) если CentOS 7:
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum --enablerepo=remi-php72 install php php-fpm php-mysqli php-xml php-json
После установки открываем файл:
vi /etc/php-fpm.d/www.conf
И проверяем настройку для опции listen — она должна быть такой:
listen = /run/php-fpm/www.sock
...
listen.owner = nginx
* как правило, в CentOS 8 настройку менять не придется, для CentOS 7 необходимо внести изменение. Задать опцию listen.owner критично для CentOS 7.
Теперь разрешим автозапуск php-fpm и стартуем сервис:
systemctl enable php-fpm --now
Настройка виртуального домена
Создаем конфигурационный файл в nginx:
vi /etc/nginx/conf.d/baikal.conf
server {
listen 80;
server_name dav.dmosk.ru;
root /var/www/baikal/html;
index index.php;
rewrite ^/.well-known/caldav /dav.php redirect;
rewrite ^/.well-known/carddav /dav.php redirect;
charset utf-8;
location ~ /(\.ht|Core|Specific) {
deny all;
return 404;
}
location ~ ^(.+\.php)(.*)$ {
try_files $fastcgi_script_name =404;
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
* где dav.dmosk.ru — адрес портала для календаря; /var/www/baikal/html — полный путь, по которому будут располагаться файлы приложения.
Проверяем корректность конфига:
nginx -t
Если мы не получили ошибку, перечитываем конфигурацию веб-сервером:
systemctl reload nginx
Создаем каталог, в котором будут располагаться файлы Baikal (в нашем примере, /var/www/baikal/html):
mkdir -p /var/www/baikal/html
Создаем индексный файл в созданном каталоге:
vi /var/www/baikal/html/index.php
<?php phpinfo(); ?>
Переходим по адресу, который был указан в опции server_name конфига nginx (в нашем примере, dav.dmosk.ru) — мы должны увидеть страницу с параметрами php:
Можно переходить к установке сервера календарей и адресных книг.
Установка приложения Baikal
Установку разделим на 3 этапа:
- Загрузку и копирование приложения на сервере.
- Создание базы данных.
- Установку приложения через веб-интерфейс.
Разберем этапы по шагам.
1. Загрузка и копирование приложения
Устанавливаем пакеты:
yum install unzip wget
* где unzip — для разархивирования zip-архивов, wget — загрузки файлов.
Переходим на страницу загрузки последней версии приложения Baikal. Копируем ссылку на архив zip:
Воспользовавшись ссылкой, скачиваем архив:
wget https://github.com/sabre-io/Baikal/releases/download/0.7.1/baikal-0.7.1.zip
Распакуем скачанный архив:
unzip baikal-*.zip
Удаляем каталог html, который нами был создан ранее (он имеется в распакованном архиве):
rm -fr /var/www/baikal/html
Переносим содержимое распакованного архива в каталог /var/www/baikal:
mv baikal/* /var/www/baikal/
Задаем владельца для каталога:
chown -R apache:apache /var/www/baikal
2. Создание базы
Подключаемся к серверу баз данных:
mysql -uroot -p
Создаем базу данных для приложения байкал:
> CREATE DATABASE baikal DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* данной командой мы создадим базу baikal.
Создаем пользователя для подключения к созданной базе:
> GRANT ALL PRIVILEGES ON baikal.* TO baikal@localhost IDENTIFIED BY 'baikal123';
* команда создаст пользователя baikal для подключения от локального хоста (localhost) и предоставит доступ к базе baikal. Пароль baikal123.
Выходим из командной консоли sql:
> quit
3. Установка приложения через веб
Переходим по нашему адресу (в данной инструкции dav.dmosk.ru). В открывшемся окне заполняем поля и нажимаем Save changes:
В следующем окне ставим галочку Use MySQL и заполняем поля для подключения к созданной базе:
... и кликаем по Save changes. Установка завершена — переходим к панели настройки сервера, кликнув по Start using Baikal:
Создание пользователя
Следующий шаг — создать пользователя с адресной книгой и календарем. Переходим по адресу http://<имя виртуального домена>/admin/ и авторизовываемся в системе, введя логин admin и пароль, который создали на этапе установки.
Переходим в раздел Users and resources:
Кликаем по Add user:
В открывшейся форме заполняем поля и кликаем по Save changes:
Появится учетная запись, а справа от нее возможность перейти к календарю и адресной книге:
Настройка подключения к серверу
Рассмотрим в качестве примера подключение к адресной книге и календарю программами Outlook и Mozilla Thunderbird.
Microsoft Outlook
Сначала закроем программу Outlook (если она запущена в системе).
Для синхронизации Outlook с серверов webdav необходима программа CalDav Synchronizer. Переходим на страницу https://caldavsynchronizer.org/download-2 и выбираем для загрузки последнюю версию программного обеспечения:
После загрузки устанавливаем программу, распаковав архив и запустив файл msi. На вопросы мастера просто отвечаем Далее. После установки запускаем Outlook и переходим к вкладке CalDav Synchronizer - кликаем по Synchronization Profiles:
Кликаем по значку добавления профиля:
Заполняем профиль для создания синхронизации с календарем и кликаем по Test or discover settings:
* где DAV URL должен указывать на http путь до профиля календарей пользователя. В нашем случае, это http://dav.dmosk.ru/dav.php/calendars/kdo/default/.
Мы должны увидеть сообщение об успешной проверке подключения. Завершаем создание профиля.
Снова кликаем по значку добавления профиля:
Заполняем поля для создания синхронизации с адресной книгой:
* где http://dav.dmosk.ru/dav.php/addressbooks/kdo/default/ — это путь до профиля адресной книги созданного нами пользователя на сервере Baikal.
... и кликаем по Test or discover settings: — мы должны получить сообщение об успешной проверке.
Готово.
Mozilla Thunderbird
Открываем почтовый клиент Mozilla Thunderbird - нажимаем Alt - в появившемся меню кликаем по Инструменты - Дополнения:
Для поиска нужного дополнения вводим tbsync:
Среди результатов поиска находим TbSync и нажимаем Добавить в Thunderbird:
Снава переходим к поиску дополнения и вводим carddav:
Среди результатов находим Provider for CalDAV & CardDAV и кликаем по Добавить в Thunderbid:
После добавления дополнений перезагружаем почтовый клиент и снова нажимаем Alt - в появившемся меню Инструменты - Настройка дополнений - TbSync:
В нижней части окна кликаем по Действия для аккаунта - Добавить новый аккаунт - CalDAV & CardDAV:
Среди шаблонов настроек выбираем Пользовательская конфигурация:
Заполняем поля для добавления профиля:
* где:
- http://dav.dmosk.ru/dav.php/calendars/kdo/default/ — путь для запросов к серверу календаря.
- http://dav.dmosk.ru/dav.php/addressbooks/kdo/default/ — путь для запросов к серверу адресной книги.
Нажимаем Готово:
Кликаем по галочке Разрешить и синхронизировать этот аккаунт - после ставим галочки для синхронизации адресной книги и календаря. После нажимаем Синхронизировать сейчас: