DAViCal Web Client Installation

From Davical
Revision as of 10:45, 9 September 2011 by Milix (talk) (Inside web scope)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

DAViCal Web Client can be installed in two ways. You can either choose an installation inside web scope - the preferred way for hosted applications, or you can choose an installation outside web scope - recommended way if you host your own web server.

Get latest release:

Inside web scope

Untar/unzip the package in a web enabled directory and point your browser to this directory. To install webcal simply follow the automatically started wizard.

You may need to install php5-mcrypt and give the web server write permissions on the directory. On Debian Squeeze, I needed to do this:

 cd /path/to/webcal-dir
 chown -R www-data:www-data cal
 apt-get install php5-mcrypt
 apache2ctl graceful

Windows Installation Notes (webcal-0.7.2)

- Edit php.ini to add the pathname to the webcal directory to the 'include_path' value before pointing the browser to the webcal directory. Failing to do so may cause failure prior to Stage 2 of the installation, at which point an invalid config.inc.php file may be created. If that also occurs, it is easiest just to remove and re-unzip the webcal files (after modifying php.ini and restarting Apache)

- PHP version < 5.3 does not have MCRYPT_DEV_RANDOM Install a later version of php.ini (or, as a temporary workaround, change MCRYPT_DEV_RANDOM to MCRYPT_RAND in utils/helper.php)

- The webcal installer displays some changes for the Apache configuration file (httpd.conf) after it completes. In the php_value include_path information, replace the colons (:) used to separate pathnames with semi-colons (;)

Outside web scope

Untar/unzip the package to any directory outside web scope and go to the directory install in this directory and run the script setup as root or by using sudo. Answer the questions and follow the directions given. The script requires Perl.

Upgrading an exiting installation (webcal >= 0.7.3)

To upgrade an existing installation all you have to do is download the new release and unzip/untar the zip/tar file into your current installation.

After unzipping/untaring the new release simply logon as the administrative user and see whether an upgrade of your database is necessary. If upgrading is needed you will be presented with a button saying upgrade. Clicking this button will automatically upgrade your database and if user data could be involved in the upgrade a complete table backup is done. The backup is stored in table called backup.

Notes for upgrading to 0.8.0

Since this upgrade requires patching config.inc.php users are adviced to check if the file is patch after running the automatic upgrade feature. Possible reason for this to not happen is:
1) Running MS Windows: The command patch is not available under MS Windows
2) The files permission do not allow the apache user to change the file

A correctly updated file should look like this:

    User specific configuration above this
    /*******************************************************************
     * Do not change below this line
     * All changes should be done above
     ******************************************************************/

    require_once 'include/user_settings.inc.php';
    require_once 'utils/authenticate.php';
    require_once 'utils/helper.php';

    session_cache_limiter('private');
    if (isset($_COOKIE['WEBCAL_EXPIRE'])) {
        $expire = $_COOKIE['WEBCAL_EXPIRE'];
        session_cache_expire($expire);
        unset($_COOKIE['WEBCAL_EXPIRE']);
        setcookie('WEBCAL_EXPIRE', FALSE);
    }
    else
        session_cache_expire(TIMEOUT);
    session_start();
    $_SESSION['WEB_ROOT'] = WEB_ROOT;

    error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE);

    if (isset($_SESSION['user_settings'])) {
        ini_set('date.timezone', $_SESSION['user_settings']->getTimezone());
    }
    else if (defined('TIMEZONE')) {
        ini_set('date.timezone', TIMEZONE);
    }
    else {
        ini_set('date.timezone', 'Etc/UTC');
    }

    if (defined('ERROR_DISPLAY')) {
        if (ERROR_DISPLAY) {
            ini_set('display_errors', 'on');
        }
        else {
            ini_set('display_errors', 'off');
        }
    }
    if (defined('ERROR_LOG') && ERROR_LOG) {
        ini_set('log_errors', 'on');
        ini_set('error_log', LOG_FILE);
    }

    if (! isset($_SESSION['isTimeout'])) {
    	if (isset($_SESSION['user_settings']))
        	$_SESSION['user_settings']->isTimeout();
    }
    else
	unset($_SESSION['isTimeout']);
?>


Notes for upgrading to 0.8.1

Since this upgrade requires patching config.inc.php users are adviced to check if the file is patch after running the automatic upgrade feature. Possible reason for this to not happen is:
1) Running MS Windows: The command patch is not available under MS Windows
2) The files permission do not allow the apache user to change the file

A correctly updated file should look like this:

    User specific configuration above this
    /*******************************************************************
     * Do not change below this line
     * All changes should be done above
     ******************************************************************/

    require_once 'include/user_settings.inc.php';
    require_once 'utils/authenticate.php';
    require_once 'utils/helper.php';

    session_cache_limiter('private');
    if (isset($_COOKIE['WEBCAL_EXPIRE'])) {
        $expire = $_COOKIE['WEBCAL_EXPIRE'];
        session_cache_expire($expire);
        unset($_COOKIE['WEBCAL_EXPIRE']);
        setcookie('WEBCAL_EXPIRE', FALSE);
    }
    else
        session_cache_expire(TIMEOUT);
    session_start();
    header('Cache-Control: private');
    $_SESSION['WEB_ROOT'] = WEB_ROOT;

    error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE);

    if (isset($_SESSION['user_settings'])) {
        ini_set('date.timezone', $_SESSION['user_settings']->getTimezone());
    }
    else if (defined('TIMEZONE')) {
        ini_set('date.timezone', TIMEZONE);
    }
    else {
        ini_set('date.timezone', 'Etc/UTC');
    }

    if (defined('ERROR_DISPLAY')) {
        if (ERROR_DISPLAY) {
            ini_set('display_errors', 'on');
        }
        else {
            ini_set('display_errors', 'off');
        }
    }
    if (defined('ERROR_LOG') && ERROR_LOG) {
        ini_set('log_errors', 'on');
        ini_set('error_log', LOG_FILE);
    }

    if (! isset($_SESSION['isTimeout'])) {
    	if (isset($_SESSION['user_settings']))
        	$_SESSION['user_settings']->isTimeout();
    }
    else
	unset($_SESSION['isTimeout']);

Back to DAViCal Web Client