DAViCal

Prerequisites

  • Apache webserver
  • PostgreSQL: 8.1 or greater
  • PHP 5.1 or greater. Default options plus:
    --with-pgsql=/usr/local/postgresql \
    --with-pdo-pgsql=/usr/local/postgresql \
    --enable-soap --with-openssl \
    --with-curl \
    --with-calendar

    Once it's installed, add the Perl modules:

    perl -MCPAN -e'install DBI'

    In order to install DBD::Pg, you'll need to add it's libraries:

    echo "/usr/local/postgresql/lib" > /etc/ld.so.conf.d/postgresql.conf
    ldconfig

    Then install it:

    perl -MCPAN -e'install DBD::Pg'
  • Andrew's Web Libraries (AWL) which is a set of useful PHP functions and objects
    cd /extra/src
    wget http://debian.mcmillan.net.nz/packages/awl/awl-0.53.tar.gz
    tar zxf awl-0.53.tar.gz
    mv awl-0.53 /usr/share/awl

Installation
Download the latest source code:

cd /extra/src
wget http://debian.mcmillan.net.nz/packages/davical/davical-1.1.1.tar.gz
tar zxf davical-1.1.1.tar.gz
mv davical-1.1.1 /usr/share/davical

After you create the database, record the admin password that it randomly assigns:

cd /usr/share/davical/dba
su postgresql -c ./create-database.sh

Create directories for web components we will add later:

mkdir -p /var/websites/calendar.domain.com
mkdir -p /var/websites/calendar.domain.com/logs
mkdir -p /var/websites/calendar.domain.com/htdocs
mkdir -p /var/websites/calendar.domain.com/ssl

Edit /usr/local/apache2/conf/httpd.conf and enable the httpd-ssl.conf file. Edit /usr/local/apache2/conf/extra/httpd-ssl.conf and add a VirtualHost directive for DaviCAL. It will listen on ports 8443 and 8843 for calendar and addressbook access:

Listen 8443
Listen 8843
<VirtualHost *:8443 *:8843>
    ServerName davical.domain.com
    ServerAlias calendar.domain.com

    SSLEngine On
    SSLCertificateFile /var/websites/calendar.domain.com/ssl/server.crt
    SSLCertificateKeyFile /var/websites/calendar.domain.com/ssl/server.key

    ErrorLog /var/websites/calendar.domain.com/logs/davical-error_log
    CustomLog /var/websites/calendar.domain.com/logs/davical-access_log combined

    DocumentRoot /usr/share/davical/htdocs
    DirectoryIndex index.php index.html
    Alias /images/ /usr/share/davical/htdocs/images/

    <Directory "/usr/share/davical/htdocs">
      Order   deny,allow
      Allow   from all
    </Directory>

    php_value include_path /usr/share/davical/inc:/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"
</VirtualHost>

Configuration
DAViCal Wiki configuration pages

After restarting Apache, you should be able to access the DAViCal web interface. However you need to create a config file:

mkdir /etc/davical

If you're only running one DAViCal instance, then the config file would be /etc/davical/config.php, otherwise you use /etc/davical/davical.domain.com-conf.php:

<?php
  $c->admin_email = 'webmaster@domain.com' ;
  $c->system_name = 'Domain XYZ CalDAV Server' ;
  $c->default_locale = 'en_US.UTF-8' ;
  $c->pg_connect[] = 'dbname=davical port=5432 user=davical_app' ;
  $c->template_usr = array( 'active' => true,
    'locale' => 'en',
    'date_format_type' => 'U'
  );

Upgrading
Move the old source files:

mv /usr/share/davical /usr/share/davical-old

Put the new source in its place:

mv davical-1.1.1 /usr/share/davical

Run the database update code:

/usr/share/davical/dba/update-davical-database

Resources
Centos installation notes
http://lazyb0y.blogspot.ca/2008_06_01_archive.html
http://wiki.herzbube.ch/index.php/DAViCal

Recent Updates

  • 1 year 12 months ago
  • 1 year 12 months ago
  • 1 year 12 months ago
    php 8.x
  • 1 year 12 months ago
    10.6.7
  • 2 years 22 hours ago
    Drop Centos 5/6 stuff