Поднимаем простой DAV server на Linux: различия между версиями
Vix (обсуждение | вклад) Нет описания правки |
Vix (обсуждение | вклад) Нет описания правки |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 57: | Строка 57: | ||
$c->admin_email = 'admin@davical.local'; | $c->admin_email = 'admin@davical.local'; | ||
$c->pg_connect[] = 'dbname=davical user=davical_app'; | $c->pg_connect[] = 'dbname=davical user=davical_app'; | ||
$c->default_locale = | $c->default_locale = «ru_RU»; | ||
$c->use_old_sync_response_tag = true; | $c->use_old_sync_response_tag = true; | ||
?> | ?> | ||
| Строка 73: | Строка 73: | ||
* Сам сервер уже настроен, но пока у нас ничего не работает. Делаем веб-интерфейсы. | * Сам сервер уже настроен, но пока у нас ничего не работает. Делаем веб-интерфейсы. | ||
CalDavZap — установка и настройка. | * '''CalDavZap''' — установка и настройка. | ||
Скачиваем архив программы со | Скачиваем архив программы со [http://www.inf-it.com/open-source/clients/caldavzap/ страницы] <br> | ||
И распаковываем его в /var/www | И распаковываем его в /var/www | ||
Открываем его файл конфигурации и правим в нем строку globalNetworkCheckSettings | Открываем его файл конфигурации и правим в нем строку globalNetworkCheckSettings: | ||
var globalNetworkCheckSettings={href: 'http://davical.local/caldav.php/', hrefLabel: null, additionalResources: [], | var globalNetworkCheckSettings={href: 'http://davical.local/caldav.php/', hrefLabel: null, additionalResources: [], | ||
forceReadOnly: null, showHeader: true, settingsAccount: true, timeOut: 30000, lockTimeOut: 10000, delegation: false, | forceReadOnly: null, showHeader: true, settingsAccount: true, timeOut: 30000, lockTimeOut: 10000, delegation: false, | ||
backgroundCalendars: [], ignoreAlarms: false} | backgroundCalendars: [], ignoreAlarms: false} | ||
Теперь нужно настроить авторизацию в CalDavZap | * Теперь нужно настроить авторизацию в CalDavZap | ||
Для этого делаем следующие настройки: | ** Для этого делаем следующие настройки: | ||
В файле auth/config.inc в двух местах в поле href нужно прописать имя нашего сервера. При чем остальную часть пути не трогать. То есть у нас должны получиться такие строки: | В файле auth/config.inc в двух местах в поле href нужно прописать имя нашего сервера.<br> | ||
При чем остальную часть пути не трогать.То есть у нас должны получиться такие строки: | |||
'href'=>'http://davical.local/caldav.php/'.$_SERVER['PHP_AUTH_USER'].'/', | 'href'=>'http://davical.local/caldav.php/'.$_SERVER['PHP_AUTH_USER'].'/', | ||
'href'=>'http://davical.local/caldav.php/resource/', | 'href'=>'http://davical.local/caldav.php/resource/', | ||
| Строка 90: | Строка 91: | ||
$pluginconfig['base_url']='http://davical.local; | $pluginconfig['base_url']='http://davical.local; | ||
Настройка Apache | * Настройка '''Apache''' | ||
Осталось последнее действие — настроить веб-сервер. | Осталось последнее действие — настроить веб-сервер.<br> | ||
Создаем файл /etc/apache2/sites-available/davical и записываем в него | Создаем файл /etc/apache2/sites-available/davical и записываем в него: | ||
<VirtualHost *:80> | <VirtualHost *:80> | ||
DocumentRoot /usr/share/davical/htdocs | DocumentRoot /usr/share/davical/htdocs | ||
| Строка 114: | Строка 115: | ||
И перезапускаем Apache | И перезапускаем Apache | ||
Сейчас у нас стали доступны два веб-интерфейса | * Сейчас у нас стали доступны два веб-интерфейса | ||
davical.local — веб-интерфейс самого Davical, где можно делать или общесистемные настройки, если есть админские права, или создавать себе дополнительные календари или адресные книги, если права обычного пользователя. | davical.local — веб-интерфейс самого Davical, где можно делать или общесистемные настройки, если есть админские права, или создавать себе дополнительные календари или адресные книги, если права обычного пользователя. | ||
<hr> | |||
* Рекомендую сразу же зайти сюда как admin и сменить тот пароль, который мы запомнили в самом начале при установке Davical | |||
davical.local/cal — веб-интерфейс нашего календаря | |||
* На последок две полезные ссылки, для подключения ресурсов к внешним клиентам, например к Evolution или Outlook | |||
davical.local/caldav.php/USERNAME/addresses — подключение адресной книги | |||
davical.local/caldav.php/USERNAME/calendar — подключение календаря. | |||
* Не забудьте в этих ссылках заменить доменное имя и USERNAME на реально существующие | |||
<hr> | <hr> | ||
* [https://habr.com/ru/articles/212621/ Источник] | * [https://habr.com/ru/articles/212621/ Источник] | ||
Текущая версия от 20:06, 25 сентября 2025
В использовании у меня получилось довольно много устройств — одних только ноутбуков три штуки, а еще комп на работе и смартфон. В какой-то момент я понял, что адресную книгу вот так в разброс хранить неудобно, и календарь тоже бы хотелось вести как-то единообразно. Синхронизировать такое количество устройств между собой как-то очень уж неудобно получается. Вот тут и пришло время придумать, как из этого всего выпутаться. Решил я посмотреть в сторону caldav и carddav серверов. Требования для них у меня были максимально простые — учетки брать или из LDAP, или по IMAP и наличие веб-интерфейса для просмотра календаря и адресной книги.
- Под рассмотрение попали три таких реализации:
- Baikal — не подошел. Не понравилось то, что нужно было вести отдельную базу учетных записей.
- Radicale — вещь неплохая, но вебморду к нему прикрутить не удалось, хотя на сайте сказано, что CalDavZap с ним работает. Может я не очень и старался… Да и документация на него мне как-то не понравилась. Тоже не подошел.
- Davical — А вот этотот заработал. При чем именно так, как мне и хотелось. Поэтому рассмотрим его установку и настройку:
Установка и настройка Davical В качестве серверного дистрибутива использовался Ubuntu ServerPack 12.04
Устанавливаем необходимый набор пакетов программ:
# apt-get install install postgresql apache2 php5 php5-pgsqll davical php5-curl php5-imap
После установки нужно сделать небольшую настройку postrgesql. Открываем /etc/postgresql/9.1/main/pg_hba.conf Комментируем строку
local all postgres peer
И добавляем две другие
local davical davical_app trust local davical davical_dba trust
После чего перезапускаем postgresql
# service postgresql restart
Далее нужно выполнить скрипт, который создаст нужную базу данных
# su postgres -c /usr/share/davical/dba/create-database.sh
Вывод будет примерно такой:
Supported locales updated. Updated view: dav_principal.sql applied. CalDAV functions updated. RRULE functions updated. Database permissions updated. NOTE ==== * You will need to edit the PostgreSQL pg_hba.conf to allow the 'davical_dba' database user access to the 'davical' database. * You will need to edit the PostgreSQL pg_hba.conf to allow the 'davical_app' database user access to the 'davical' database. * The password for the 'admin' user has been set to 'co/e9Ap3' Thanks for trying DAViCal! Check in /usr/share/doc/davical/examples/ for some configuration examples. For help, visit #davical on irc.oftc.net.
- Смотрим на него внимательно. Там будет админский логин и пароль в веб-и нтерфейс davical
- Создадим файл конфигурации /etc/davical/config.php
<?php
$c->authenticate_hook['call'] = 'IMAP_PAM_check';
$c->authenticate_hook['config'] = array(
'imap_url' => '{davical.local:993/imap/tls/novalidate-cert}',
);
include('/usr/share/davical/inc/drivers_imap_pam.php');
$c->domain_name = 'davical.local';
$c->sysaddr = 'davical';
$c->system_name = 'DAViCal CalDAV Server';
$c->admin_email = 'admin@davical.local';
$c->pg_connect[] = 'dbname=davical user=davical_app';
$c->default_locale = «ru_RU»;
$c->use_old_sync_response_tag = true;
?>
- Обратите внимание, на строку imap_url. Судя по их вики davical.dhits.nl тут предусматривается несколько возможных вариантов:
{localhost:143/imap/}
{localhost:143/imap/tls/}
{example.com:993/imap/ssl/}
{example.com:143/imap/tls/novalidate-cert}
- Так вот — все это работает (по крайней мере у меня) только в том случае, если в конце строки НЕ СТАВИТЬ “/”
В общем каждый прописывает эту строку с теми параметрами, с которыми ему нужно.
- Сам сервер уже настроен, но пока у нас ничего не работает. Делаем веб-интерфейсы.
- CalDavZap — установка и настройка.
Скачиваем архив программы со страницы
И распаковываем его в /var/www
Открываем его файл конфигурации и правим в нем строку globalNetworkCheckSettings:
var globalNetworkCheckSettings={href: 'http://davical.local/caldav.php/', hrefLabel: null, additionalResources: [],
forceReadOnly: null, showHeader: true, settingsAccount: true, timeOut: 30000, lockTimeOut: 10000, delegation: false,
backgroundCalendars: [], ignoreAlarms: false}
- Теперь нужно настроить авторизацию в CalDavZap
- Для этого делаем следующие настройки:
В файле auth/config.inc в двух местах в поле href нужно прописать имя нашего сервера.
При чем остальную часть пути не трогать.То есть у нас должны получиться такие строки:
'href'=>'http://davical.local/caldav.php/'.$_SERVER['PHP_AUTH_USER'].'/', 'href'=>'http://davical.local/caldav.php/resource/',
Кроме этого в файле auth/plugins/generic_conf.inc меняем значение в одной строке
$pluginconfig['base_url']='http://davical.local;
- Настройка Apache
Осталось последнее действие — настроить веб-сервер.
Создаем файл /etc/apache2/sites-available/davical и записываем в него:
<VirtualHost *:80> DocumentRoot /usr/share/davical/htdocs DirectoryIndex index.html index.php ServerName davical.local Alias /images/ /usr/share/davical/htdocs/images/ Alias /cal /var/www/caldavzap/ <Directory /usr/share/davical/htdocs/> AllowOverride None Order allow,deny Allow from all php_value include_path /usr/share/awl/inc php_value magic_quotes_gpc 0 php_value register_globals 0 php_value error_reporting «E_ALL & ~E_NOTICE» php_value default_charset «utf-8»
- Создаем ссылку на этот файл в /etc/apache2/sites-enabled/
И перезапускаем Apache
- Сейчас у нас стали доступны два веб-интерфейса
davical.local — веб-интерфейс самого Davical, где можно делать или общесистемные настройки, если есть админские права, или создавать себе дополнительные календари или адресные книги, если права обычного пользователя.
- Рекомендую сразу же зайти сюда как admin и сменить тот пароль, который мы запомнили в самом начале при установке Davical
davical.local/cal — веб-интерфейс нашего календаря
- На последок две полезные ссылки, для подключения ресурсов к внешним клиентам, например к Evolution или Outlook
davical.local/caldav.php/USERNAME/addresses — подключение адресной книги davical.local/caldav.php/USERNAME/calendar — подключение календаря.
- Не забудьте в этих ссылках заменить доменное имя и USERNAME на реально существующие
