WebCalendar

From HerzbubeWiki
Jump to navigation Jump to search

Status

I no longer use WebCalendar, it has been replaced by the server-based DAViCal.

This page still exists purely for historical reasons.


Debian packages

webcalendar


References

Homepage
http://www.k5n.us/webcalendar.php


Configuration

DebConf

Answers to DebConf:

  • manage settings.conf automatically = yes
  • configure database for webcalendar with dbconfig-common = yes
  • database type = mysql
  • password of your database's administrative user = secret
  • MySQL application password for webcalendar = secret (this is the password used to connect to MySQL)
  • web server to configure = apache2
  • should apache2 be restarted = yes
  • should WebCalendar use persistent connections = no (because I don't expect heavy load)
  • use HTTP authentication = no
  • should WebCalendar be installed in single-user mode = no


File system

The webcalendar package stores its configuration in

/etc/webcalendar/settings.conf

This file contains information how to connect to the MySQL server, therefore it is protected with restrictive privileges:

-rw-r-----   1 root www-data  5708 Jan  4 15:57 settings.conf

Nothing needs to be changed in settings.conf, DebConf already has set up the file correctly.


Web server setup

The webcalendar package stores basic web server configuration in

/etc/apache2/conf.d/webcalendar

which is a link to

/etc/webcalendar/apache.conf


Additional configuration is required because of restrictive settings on my server. The following configuration needs to be placed into /etc/apache2/conf.d/osgiliath.conf:

<Directory /usr/share/webcalendar/www/>
   Require all granted

   <IfModule mod_php5.c>
      php_admin_flag engine on
   </IfModule>
</Directory>


MySQL setup

Nothing to do, this is handled automatically by DebConf if "configure database for webcalendar with dbconfig-common = yes".

Details:

  • database name = webcalendar (automatically chosen)
  • database user = webcalendar (automatically chosen)
  • database password = secret (configurable through DebConf)


dbconfig-common

Actually, database setup is delegated and handled by package

dbconfig-common

This package stores configuration details for applications that it handles in its own directory

/etc/dbconfig-common

For webcalendar the file is named

/etc/dbconfig-common/webcalendar.conf

Unfortunately, the file duplicates database access information already configured in /etc/webcalendar/settings.conf. The file therefore is protected with restrictive privileges:

-rw-------   1 root root 2478 Jan  4 15:57 webcalendar.conf


Web browser setup

After DebConf configuration is complete, webcalendar is available under the alias "/webcalendar". After manual web server configuration is done, the application is available through the browser:

http://osgiliath.herzbube.ch/webcalendar/


The application needs some final configuration steps:

  • admin
    • users
      • user "admin"
        • change password (default password after installation is "admin")
      • add new user "patrick"
    • system settings
      • settings
      • other
        • allow remote subscriptions = yes
      • email
        • email enabled = yes (note that email reminders work despite this being set to "no")
        • default sender address = webcalendar@herzbube.ch (so that email reminders have a reasonable sender address)


Clients

In order for external clients to be able to access WebCalendar data, the following 2 things must be true:

  • the site admin must have enabled remote subscriptions (admin->system settings->other)
  • the user must have allowed remote subscriptions (admin->preferences)

For instance, for the user "patrick", the following URLs become available for subscription:


iCal


Email reminders

The webcalendar package is configured to send out email reminders every 10 minutes. The file responsible for this is

/etc/cron.d/webcalendar

For illustration purposes: to send out email reminders every 5 minutes you could create a crontab entry that looks like this:

*/5 * * * * cd /usr/share/webcalendar/tools; ./send_reminders.php

Note: For this to work, it must be possible to execute PHP scripts on the command line. The Debian package for PHP is already built to allow this.