Меню Рубрики

Установка davical на ubuntu

Поднимаем простой DAV server на Linux

В использовании у меня получилось довольно много устройств — одних только ноутбуков три штуки, а еще комп на работе и смартфон. В какой-то момент я понял, что адресную книгу вот так в разброс хранить неудобно, и календарь тоже бы хотелось вести как-то единообразно. Синхронизировать такое количество устройств между собой как-то очень уж неудобно получается. Вот тут и пришло время придумать, как из этого всего выпутаться. Решил я посмотреть в сторону caldav и carddav серверов.
Требования для них у меня были максимально простые — учетки брать или из LDAP, или по IMAP и наличие веб-интерфейса для просмотра календаря и адресной книги.
Под рассмотрение попали три таких реализации:
1. Baikal — не подошел. Не понравилось то, что нужно было вести отдельную базу учетных записей.
2. Radicale — вещь неплохая, но вебморду к нему прикрутить не удалось, хотя на сайте сказано, что CalDavZap с ним работает. Может я не очень и старался… Да и документация на него мне как-то не понравилась. Тоже не подошел.
3. 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

authenticate_hook[‘call’] = ‘IMAP_PAM_check’;
$c->authenticate_hook[‘config’] = array(
‘imap_url’ => ‘‘,
);
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 = «uk_UA»;
$c->use_old_sync_response_tag = true;
?>

Обратите внимание, на строку imap_url. Судя по их вики davical.dhits.nl тут предусматривается несколько возможных вариантов:

Так вот — все это работает (по крайней мере у меня) только в том случае, если в конце строки НЕ СТАВИТЬ “/”
В общем каждый прописывает эту строку с теми параметрами, с которыми ему нужно.

Сам сервер уже настроен, но пока у нас ничего не работает. Делаем веб-интерфейсы.

Теперь нужно настроить авторизацию в 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 и записываем в него

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/

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 на реально существующие

источник

Установка davical на ubuntu

Администратор

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

Linux*
В использовании у меня получилось довольно много устройств — одних только ноутбуков три штуки, а еще комп на работе и смартфон. В какой-то момент я понял, что адресную книгу вот так в разброс хранить неудобно, и календарь тоже бы хотелось вести как-то единообразно. Синхронизировать такое количество устройств между собой как-то очень уж неудобно получается. Вот тут и пришло время придумать, как из этого всего выпутаться. Решил я посмотреть в сторону caldav и carddav серверов.

Требования для них у меня были максимально простые — учетки брать или из LDAP, или по IMAP и наличие веб-интерфейса для просмотра календаря и адресной книги.

Читайте также:  Установка блок климат контроля

Под рассмотрение попали три таких реализации:

1. Baikal — не подошел. Не понравилось то, что нужно было вести отдельную базу учетных записей.

2. Radicale — вещь неплохая, но вебморду к нему прикрутить не удалось, хотя на сайте сказано, что CalDavZap с ним работает. Может я не очень и старался… Да и документация на него мне как-то не понравилась. Тоже не подошел.

3. 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 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.

Database permissions updated.

* 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

$c->system_name = ‘DAViCal CalDAV Server’;

$c->pg_connect[] = ‘dbname=davical user=davical_app’;

Обратите внимание, на строку imap_url. Судя по их вики davical.dhits.nl тут предусматривается несколько возможных вариантов:

Так вот — все это работает (по крайней мере у меня) только в том случае, если в конце строки НЕ СТАВИТЬ “/”

В общем каждый прописывает эту строку с теми параметрами, с которыми ему нужно.

Сам сервер уже настроен, но пока у нас ничего не работает. Делаем веб-интерфейсы.

CalDavZap — установка и настройка.

И распаковываем его в /var/www

Открываем его файл конфигурации и правим в нем строку globalNetworkCheckSettings

Теперь нужно настроить авторизацию в CalDavZap

Для этого делаем следующие настройки:

В файле auth/config.inc в двух местах в поле href нужно прописать имя нашего сервера. При чем остальную часть пути не трогать. То есть у нас должны получиться такие строки:

Кроме этого в файле auth/plugins/generic_conf.inc меняем значение в одной строке

Осталось последнее действие — настроить веб-сервер.

Создаем файл /etc/apache2/sites-available/davical и записываем в него

DirectoryIndex index.html index.php

Alias /images/ /usr/share/davical/htdocs/images/

Alias /cal /var/www/caldavzap/

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 &

php_value default_charset «utf-8»

Создаем ссылку на этот файл в /etc/apache2/sites-enabled/

Сейчас у нас стали доступны два веб-интерфейса

davical.local — веб-интерфейс самого Davical, где можно делать или общесистемные настройки, если есть админские права, или создавать себе дополнительные календари или адресные книги, если права обычного пользователя.

Рекомендую сразу же зайти сюда как admin и сменить тот пароль, который мы запомнили в самом начале при установке Davical

На последок две полезные ссылки, для подключения ресурсов к внешним клиентам, например к Evolution или Outlook

Не забудьте в этих ссылках заменить доменное имя и USERNAME на реально существующие

источник

Before Starting

Debian Users

Recent Debian (and Ubuntu) releases have DAViCal 1.1.3.1 and AWL 0.55 (a library referenced by DAViCal) available in their repositories, and you can use apt-get or similar tools to download and install DAViCal. Once you have done that, you should be able to proceed to the Database Setup section, below.

Other Linux Users

In most cases, you will need to download the latest versions of the ‘DAViCal’ and ‘awl’ packages from here or the repository on GitLab and should proceed with the ‘Pre-requisites’ section below.

The DAViCal wiki contains information on installation on other versions of Linux. Please feel free to contribute your experiences, using the mailing list if you don’t have a wiki account.

We would like to hear from non-Debian users regarding things which might have been missed, or things you have learned about the system, so please write about your installation experiences on the Wiki, or post a message on the mailing list.

Non-Linux Users

We would really like to hear from you. As far as we can see there is no reason why this can’t all work on FreeBSD, Microsoft Windows, VMS, Mac OS or whatever else, as long as the pre-requisites are able to be installed.

For Unix and unix-like operating systems the «Other Linux Users» instructions are likely to be reasonably close to what you need. For other systems everything will need some adjustment, and in particular some of the path name and shell expectations coded into the database creation scripts are likely to need love.

We’re available to answer questions, anyway 🙂

Читайте также:  Установка деревянных опор заземление

Pre-requisites

DAViCal depends on a number of things. Firstly, it depends on Andrew’s Web Libraries (AWL) which is a set of useful PHP functions and objects written by Andrew McMillan over a number of years.

The following other software is also needed:

  • A webserver which can run PHP (however most of this documentation assumes Apache 2.2 or later)
  • PHP: 5.1 or greater
  • PostgreSQL: 8.1 or greater
  • A couple of other packages to execute the database scripts. (Your package manager should have taken care of these)

The PostgreSQL database may be installed on a server other than the web server, and that kind of situation is recommended if you want to increase the security or scalability of your installation.

Since the CalDAV store takes over a significant amount of path hierarchy, it can be easier in its own virtual host. If you want it to operate within the web root of some other application there are instructions on the Wiki about doing this, as well as other fancy tricks such as configuring URL rewriting in order to shorten the path.

Installation from source

DAViCal is a web application. So unlike other software, where you have to compile the source code into a binary that you’re then executing, the source files are executed directly by a webserver — even the config files you’re going to edit are ordinary PHP source files.

Therefore installation from source is not much different from installing DAViCal from a distribution package. You’ll only have to do some of the work manually that your package manager would usually do for you.

First you have to get the DAViCal code from GitLab. You can either download a zip file containing a specified release or you might download the newest version directly out of the «master branch»:

This will create two new directories davical and awl in your current directory. Now go and delete the .git subdirectories (that contain information about the current revision and possible local changes) out of both of them. Not that they will do any harm but there’s no need to have them in a publicly accessible location.

Several parts of DAViCal expect certain parts of the software to be located in some well known system directories. So the last thing you have to do, is to move the two directories to their expected positions and set the proper file permissions. The most reasonable choices here would be /usr/share or /usr/local/share :

Database Setup

Preparing the Database Connection

Before your database is being created, you should edit your pg_hba.conf file (in /etc/postgresql/9.x/main/pg_hba.conf on Debian or derivatives) in order to grant access to the database for the ‘davical_dba’ user that will be created to ‘own’ the database and tables, and also for the ‘davical_app’ user which will be created for the web application fo connect as.

In a simple installation, where you do not have untrusted users on your database server, and your database is on the same computer as the web server, the following lines (at the very top of the pg_hba.conf file) should be enough:

This means that anyone on the local computer (including the web application) will have rights to connect to the DAViCal database as the ‘davical_app’ or ‘davical_dba’ user. It will not allow remote access, or access as any user other than ‘davical_app’ or ‘davical_dba’.

If you want to connect to the database over TCP/IP from your webserver on ‘192.168.59.231’ (e.g. rather than unix sockets which will only work for access from the local machine), the lines in the pg_hba.conf file should look something like:

If you want greater security, or if you want to have the database on a different server, you should read the PostgreSQL documentation on ‘pg_hba.conf’ for the version you are using.

Once you have changed the pg_hba.conf file you will need to reload or restart the PostgreSQL process for the change to come into effect.

Creating and Building the Database

To create the database itself, run the script create-database.sh (make sure the file is executable first, especially if you followed the instructions above to adjust file permissions):

Note that this script calls the AWL database scripts as part of itself and it expects them to be located in /usr/share/awl/dba which might be a reasonable place, but it might not be where you have put them.

This script expects to be running as a user who has rights to create a new database, so you may need to do this as the ‘postgres’ user, for example:

In case the script fails you probably will have to delete the incompletely created database, fix the error and start over again. A good first shot is to check if all the package dependencies DAViCal and the database scripts rely upon are fullfilled.

To delete the database a simple

Apache Configuration

Relative to an existing DocumentRoot

You can create a symlink from an existing web root directory to the /usr/share/davical/htdocs directory, such as:

Читайте также:  Установка пластиковых плинтусов в квартире

You will need to change your global PHP configuration to include the directory /usr/share/awl/inc in the ‘include_path’ setting, along with any other directories already needed by other applications.

If on older versions of PHP you will also need to ensure that ‘magic_quotes_gpc’ is off.

Using a Virtual Host

Your Apache instance needs to be configured for Virtual Hosts. If this is not already the case you may want to read some documentation about that, and you most likely will want to ensure that any existing site becomes the **default** virtual host, with DAViCal only being a single virtual host.

I use a Virtual Host stanza like this:

Replace ‘123.4.56.78’ with your own IP address, of course (you can use a name, but your webserver may fail on restart if DNS happens to be borked at that time).

The various paths and names need to be changed to reflect your own installation, although those are the recommended locations for the various pieces of the code (and are standard if you installed from a package.

On Debian systems (or derivatives such as Ubuntu), when you are using Apache 2, you should put this definition in the /etc/apache2/sites-available directory and you can use the a2ensite command to enable it.

Once your VHost is installed an working correctly, you should be able to browse to that address and see a page telling you that you need to configure DAViCal.

If you only get a blank page, you should check if your DAViCal configuration file is present in /etc/davical/ (see section below), that its readable by your webserver and that you specified the correct database in it that you want DAViCal to connect to.

DAViCal Configuration

The DAViCal configuration generally resides in /etc/davical/ -conf.php and is a regular PHP file which sets (or overrides) some specific variables.

Note that if you want to run multiple instances of DAViCal for several domains the filename HAS to match the server.domain.net-conf.php scheme following the domain name you specified in your Apache Virtual Host (an IP address will work as well)! If you only want to run a single instance of DAViCal you can simply create a file called /etc/davical/config.php .

If you used a package manager to install DAViCal that file should already exist. If you installed DAViCal manually you can either copy the example config file from /usr/share/davical/config/ or you create a new file and start your configuration from scratch. A minimal configuration file could look like this:

See the wiki for the full list of DAViCal configuration settings.

Multiple values may be specified for the PostgreSQL connect string, so that you can (e.g.) use PGPool to cache the database connection but fall back to a raw database connection if it is not running.

You should set the ‘domain_name’ and ‘admin_email’ as they are used within the system for constructing URLs, and for notifying some kinds of events.

If you are in a non-English locale, you can set the ‘default_locale’ configuration to one of the supported locales.

Supported Locales

At present the following locales are supported:

  • English
  • German / Deutsch
  • Spanish / Español
  • French / Français
  • Russian / Русский
  • Netherlands / Nederlands
  • Polish / Polski
  • Hungarian / Magyar
  • Japanese / 日本語
  • Italian / Italiano
  • Swedish / Svenska

If you want locale support you probably know more about configuring it than me, but at this stage it should be noted that all translations are UTF-8, and pages are served as UTF-8, so you will need to ensure that the UTF-8 versions of these locales are supported on your system.

Completed?

If all is going well you should now be able to browse to the admin pages and log in as ‘admin’ (the password is the bit after the ‘**’ in the ‘password’ field of the ‘usr’ table so:

should show you a list. Note that once you change a password it won’t be readable in this way — only the initial configuration leaves passwords readable like this for security reasons.

Check the /setup.php page in your installation and if everything is working then you should be ready to configure a client to use your new DAViCal installation, and the docs for that are elsewhere.

If you had to do something else that is not covered here, or if you have any other notes you want to add to help others through the installation process, please write something up about your experiences in the Wiki, including distribution specific notes, to pages somewhere under here: http://wiki.davical.org/w/Installation_Stuff

Upgrades

Whenever you upgrade the DAViCal application to a new version you will need to run dba/update-davical-database which will apply any pending database patches, as well as enabling new translations, loading database views and functions, and setting application permissions to database tables.

источник