Установка CalDAV / CardDAV сервиса Davical 1.1.5 + LDAP на CentOS 6.8

Скачиваем davical и awd

wget https://gitlab.com/davical-project/awl/repository/archive.tar.gz?ref=master -O awl.tar.gz
wget https://gitlab.com/davical-project/davical/repository/archive.tar.gz?ref=master -O davical.tar.gz

Распаковываем

tar -xzf awl.tar.gz 
tar -xzf davical.tar.gz

Перемещаем

mv awl-master-4c75c662e8605ed54ba4b8e65e4c3a8cc773052f/ /usr/share/awl
mv davical-master-8313f765ce89f752af77e0e0a90f3d1f5981b5b5/ /usr/share/davical

Меняем права

chmod  755 -R /usr/share/awl/
chmod  755 -R /usr/share/davical/

Устанавливаем postgresql 9.6

rpm -Uvh https://yum.postgresql.org/9.6/redhat/rhel-6-x86_64/pgdg-redhat96-9.6-3.noarch.rpm
yum install postgresql96-server postgresql96 postgresql96-lib

Инициализируем базу данных

service postgresql-9.4 initdb

Запускаем сервис и добавляем в автозагрузку

service postgresql-9.4 start
chkconfig postgresql-9.4 on

Настраитваем postgresql 9.6

nano /var/lib/pgsql/9.6/data/postgresql.conf

меняем listen_addresses = ‘localhost’ на listen_addresses = ‘*’

nano /var/lib/pgsql/9.6/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.1.0/24          trust
local    davical         davical_app                             trust
local    davical         davical_dba                             trust

Открывает порт в iptables

nano /etc/sysconfig/iptables

Добавляем строчку:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

Перезагружаем postgresql и файерволл

service postgresql-9.6 restart
service iptables restart

Продолжаем установку davical, инициализируем базу

cd /tmp
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
====
*  The password for the 'admin' user has been set to 'password'

Thanks for trying DAViCal! Check the configuration in /etc/davical/config.php.
For help, look at our website and wiki, or visit #davical on irc.oftc.net.

Если не получилось создать базу, разбираемся в чем проблема, удаляем не до конца созданную базу

su postgres -c "dropdb davical"

У меня проблема возникла из-за не правильной настроки postgresql, точнее из-за строчки в файле pg_hba.conf

local   all             all                                     trust

Конфигурационный файл Apache (/etc/httpd/virtual/davical.local)

  DocumentRoot /usr/share/davical/htdocs
  DirectoryIndex index.php index.html
  ServerName calendar.domainnamehere.com
  ServerAlias davical.domainnamehere.com
  Alias /images/ /usr/share/davical/htdocs/images/
  
     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"

  ErrorLog "logs/calendar.domainnamehere.com-error_log"
  CustomLog "logs/calendar.domainnamehere.com-access_log" common

Конфигурационный файл davical (/usr/share/davical/config/config.php)

<?php
  $c->domain_name = "davical.local";
  $c->sysabbr     = 'davical';
  $c->admin_email = 'admin@example.net';
  $c->system_name = "Example DAViCal Server";
  $c->pg_connect[] = 'dbname=davical user=davical_app';
  $c->default_locale = "ru_RU";

Конфигурационный файл davical+ldap (/usr/share/davical/config/config.php)

<?php
$c->pg_connect[] = "dbname=davical user=davical_app";
$c->system_name = "DAViCal CalDAV Server";
$c->readonly_webdav_collections = false;
$c->admin_email ='admin@example.net';
$c->collections_always_exist = true;

$c->template_usr = array( 'active' => true,
                       'locale' => 'ru_RU',
                       'date_format_type' => 'E',
                       'email_ok' => date('Y-m-d')
                     );

$c->schedule_private_key = 'PRIVATE-KEY-BASE-64-DATA';
$c->external_refresh = 60;
$c->support_obsolete_free_busy_property = true;


$c->authenticate_hook['call'] = 'LDAP_check';
$c->authenticate_hook['config'] = array(
    'host'              => '192.168.1.2',
    'port'              => '389',
    'bindDN'            => 'admin@DOMAIN',
    'passDN'            => 'password',
    'baseDNUsers'       => 'dc=domain,dc=local',
//    'filterUsers'       => 'objectClass=InetOrgPerson',
    'protocolVersion'   => 3,
    'optReferrals'      => 0,
    'filterUsers'       => '(&(objectcategory=person)(objectclass=user)(givenname=*))',
    'mapping_field'     => array('username' => 'sAMAccountName',
                                 'updated'  => 'whenChanged',
                                 'fullname' => 'cn' ,
                                 'email'    => 'mail'),
      'default_value' => array("date_format_type" => "E","locale" => "ru_RU"),
//    'default_value'     => array("date_format_type" => "E","locale" => "en_NZ"),
    'format_updated'    => array('Y' => array(0,4),'m' => array(4,2),'d'=> array(6,2),'H' => array(8,2),'M'=>array(10,2),'S' => array(12,2))
//    'scope' => 'subtree',
    );
//
//  /* If there is some user you do not want to sync from LDAP, put their username in this list */
  $c->do_not_sync_from_ldap = array( 'admin' => true );
include('drivers_ldap.php');

 $c->default_locale = "ru_RU";
 $c->domain_name = "davical.local";
 $c->local_tzid = 'Europe/Moscow';
 $c->allow_get_email_visibility = true;

Максим Макаров
У блога появился хостинг, его любезно предоставила компания Облакотека.
Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс. Для этого достаточно кликнуть на контекстную рекламу, расположенную на сайте.
Оцените автора
IT Draft
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.