Admins/Install Howto Ubuntu 8.04 LTS

This is a step-by-step howto to install Tine 2.0 for Ubuntu 8.04 LTS (aka Hardy Heron).

As php often has some security issues I decided to use apache2-mpm-itk. In this environment the apache processes handling a special vhost runs as specified user. You can also use a different apache2 server like apache2-mpm-prefork.

Note: For the following instructions I assume that you install tine on a vhost called "tine20".

Contents

Prepare mysql

On your mysql system execute the following (with your own secret password):

 # mysql
   mysql> CREATE DATABASE  tine20;
   mysql> GRANT ALL PRIVILEGES ON tine20.* TO 'tine20'@'localhost' IDENTIFIED BY 'XXXXXXXX';

Prepare Apache

Setup user tine20

 adduser tine20
 mkdir -p /home/tine20/www/htdocs
 mkdir -p /home/tine20/www/logs
 mkdir -p /home/tine20/www/sessions
 touch /home/tine20/www/logs/access.log
 touch /home/tine20/www/logs/error.log
 touch /home/tine20/www/logs/tine20.log
 chown -R tine20.tine20 /home/tine20/www


If NOT running apache2-mpm-itk must give write permissions to group www-data for the file /home/tine20/www/logs/tine20.log (this is not tested. You will have to find out on your own and extend this installation howto):

 chown .www-data /home/tine20/www/logs/tine20.log
 chmod g+w /home/tine20/www/logs/tine20.log


Install necessary packages

   apt-get install apache2-mpm-itk libapache2-mod-php5 php5-mysql php5-gd php5-mcrypt

setup virtual host

As I said above I want to benefit from the user separation delivered by apache2-mpm-itk. So I install tine20 as a virtual host on apache. Create a file /etc/apache2/sites-available/tine20 with the following content:

 <VirtualHost *>
       ServerAdmin webmaster@tine20
       ServerName tine20

       Alias /Microsoft-Server-ActiveSync /home/tine20/www/htdocs/index.php

       DocumentRoot /home/tine20/www/htdocs/
       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>
       <Directory /home/tine20/www/htdocs/>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
               # tine needs some memory
               php_admin_value memory_limit 64M
               # tine insists on this
               php_admin_flag magic_quotes_gpc off
       </Directory>
       ErrorLog /home/tine20/www/logs/error.log
       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn
       CustomLog /home/tine20/www/logs/access.log combined
       ServerSignature On
    <IfModule mpm_itk_module>
      AssignUserId tine20 tine20
    </IfModule>
 </VirtualHost>


To enable this configuration execute:

 a2ensite tine20
 /etc/init.d/apache2 reload

Install Tine20

 su - tine20
 cd www/htdocs
 tar xjf ~/tine20-allinone-2009-02-2.tar.bz2
 tar xjf ~/tine20-activesync-2009-02-2.tar.bz2


Create a file config.inc.php with the following content:

 <?php
  return array(
    'database' => array(
        'host'  => 'localhost', // change this if your mysql is running on a remote host
        'dbname' => 'tine20',
        'username' => 'tine20',
        'password' => 'xxxxxx, // change this!
        'adapter' => 'pdo_mysql',
        'tableprefix' => 'tine20_'
    ),
    'logger' => array(
        'filename' => '/home/tine20/www/logs/tine20.log',
        'priority' => '3'
    ),
    'session.save_path' => '/home/tine20/www/sessions',
 );


Now we can follow the generic howto again: Install Howto step 4