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

Обновлено и опубликовано Опубликовано:

Сервер Baikal устанавливается как веб-приложение. В данной инструкции мы рассмотрим установку и настройка веб-сервера, приложения Baikal и подключение клиентов. Примеры команд, представленные здесь будут приведены как для CentOS 7, так и 8.

Подготовка сервера

Перед настройкой сервера выполним предварительные действия.

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:

Стартовая страница 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:

Результат команды phpinfo

Можно переходить к установке сервера календарей и адресных книг.

Установка приложения Baikal

Установку разделим на 3 этапа:

  1. Загрузку и копирование приложения на сервере.
  2. Создание базы данных.
  3. Установку приложения через веб-интерфейс.

Разберем этапы по шагам.

1. Загрузка и копирование приложения

Устанавливаем пакеты:

yum install unzip wget

* где unzip — для разархивирования zip-архивов, wget — загрузки файлов.

Переходим на страницу загрузки последней версии приложения Baikal. Копируем ссылку на архив zip:

Копируем ссылку на загрузку последней версии Baikal

Воспользовавшись ссылкой, скачиваем архив:

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:

Заполняем поля для установки Baikal Server

В следующем окне ставим галочку Use MySQL и заполняем поля для подключения к созданной базе:

Заполняем данные для подключения к серверу баз данных

... и кликаем по Save changes. Установка завершена — переходим к панели настройки сервера, кликнув по Start using Baikal:

Завершаем установку сервера Baikal

Создание пользователя

Следующий шаг — создать пользователя с адресной книгой и календарем. Переходим по адресу http://<имя виртуального домена>/admin/ и авторизовываемся в системе, введя логин admin и пароль, который создали на этапе установки.

Переходим в раздел Users and resources:

Переходим к управлению пользователями в приложении Baikal

Кликаем по Add user:

Переходим к добавлению пользователя

В открывшейся форме заполняем поля и кликаем по Save changes:

Заполняем формы для добавления пользователя

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

У созданного пользователя появляются свои каледарь и адресная книга

Настройка подключения к серверу

Рассмотрим в качестве примера подключение к адресной книге и календарю программами Outlook и Mozilla Thunderbird.

Microsoft Outlook

Сначала закроем программу Outlook (если она запущена в системе).

Для синхронизации Outlook с серверов webdav необходима программа CalDav Synchronizer. Переходим на страницу https://caldavsynchronizer.org/download-2 и выбираем для загрузки последнюю версию программного обеспечения:

Загружаем последнюю версию CalDav Synchronizer

После загрузки устанавливаем программу, распаковав архив и запустив файл msi. На вопросы мастера просто отвечаем Далее. После установки запускаем Outlook и переходим к вкладке CalDav Synchronizer - кликаем по Synchronization Profiles:

Переходим к настройке профиля в CalDav Synchronizer

Кликаем по значку добавления профиля:

Создаем новый профиль

Заполняем профиль для создания синхронизации с календарем и кликаем по 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

Среди результатов поиска находим TbSync и нажимаем Добавить в Thunderbird:

Установка дополнения tbsync

Снава переходим к поиску дополнения и вводим carddav:

Поиск дополнения по фразе carddav

Среди результатов находим Provider for CalDAV & CardDAV и кликаем по Добавить в Thunderbid:

Установка дополнения Provider for CalDAV & CardDAV

После добавления дополнений перезагружаем почтовый клиент и снова нажимаем Alt - в появившемся меню Инструменты - Настройка дополнений - TbSync:

Переход к настройке дополнения TbSync

В нижней части окна кликаем по Действия для аккаунта - Добавить новый аккаунтCalDAV & CardDAV:

Создание аккаунта CalDAV & CardDAV

Среди шаблонов настроек выбираем Пользовательская конфигурация:

Переход к созданию пользовательской конфигурации

Заполняем поля для добавления профиля:

Заполняем поля для создания профиля подключения к календарю и адресной книге

* где:

  • http://dav.dmosk.ru/dav.php/calendars/kdo/default/ — путь для запросов к серверу календаря.
  • http://dav.dmosk.ru/dav.php/addressbooks/kdo/default/ — путь для запросов к серверу адресной книги.

Нажимаем Готово:

Завершаем создание профиля

Кликаем по галочке Разрешить и синхронизировать этот аккаунт - после ставим галочки для синхронизации адресной книги и календаря. После нажимаем Синхронизировать сейчас:

Синхронизируем календарь и адресную книгу

# Windows # Безопасность
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет