Mode opératoire pour installer la version svn de RoundCube sur une debian (etch, lenny ou sid). Celà doit aussi fonctionner avec d’autres distributions.

Depuis le 04/05/2007 un paquet roundcube officiel à fait sont entrée dans debian sid, 1 mois plus tard il est entré dans testing. Il est fortement conseillé d’utiliser la version empaqueté présente dans les dépos debian officiel. Le seule intérêt de suivre la procédure ci-dessous, c’est d’utiliser la version subversion.

Récupération des sources de roundcube directement dans le svn

cd /usr/local/share

svn checkout https://svn.roundcube.net/trunk/roundcubemail roundcube

Création et préparation du répertoire de travaille, dans la “debian policy” les applications web doivent travailler dans /var/lib/mon_applie

mkdir -p /var/lib/roundcube/temp
chown www-data:www-data /var/lib/roundcube/temp
cd /var/lib/roundcube
ln -s /usr/local/share/roundcube/bin /usr/local/share/roundcube/index.php \
      /usr/local/share/roundcube/program /usr/local/share/roundcube/skins \
      /usr/local/share/roundcube/.htaccess .

Création de la base de données

mysql -u root -p
> create database roundcubemail;
> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password';
> quit

Chargement de la base

mysql -u root -p roundcubemail < /usr/local/share/roundcube/SQL/mysql5.initial.sql

Préparer le répertoire de configuration, dans debian, la totalité des fichiers de configuration doivent se trouver dans /etc/

mkdir /etc/roundcube
ln -s /etc/roundcube /var/lib/roundcube/config
cp /usr/local/share/roundcube/config/db.inc.php.dist /etc/roundcube/db.inc.php
cp /usr/local/share/roundcube/config/main.inc.php.dist /etc/roundcube/main.inc.php
chown www-data:www-data /etc/roundcube/db.inc.php /etc/roundcube/main.inc.php
chmod 640 /etc/roundcube/db.inc.php /etc/roundcube/main.inc.php

Configurer RoundCube, voir le site de roundcube pour plus d’informations

vi /etc/roundcube/db.inc.php
vi /etc/roundcube/main.inc.php

Configurer les logs

mkdir /var/log/roundcube
chown www-data:www-data /var/log/roundcube
ln -s /var/log/roundcube /var/lib/roundcube/logs

Configurer Apache2, voir l’exemple de fichier de configuration en fin d’article

vi /etc/apache2/sites-available/roundcube
a2ensite roundcube
invoke-rc.d apache2 reload

Configurer logrotate pour une rotation intelligente des logs :

vi /etc/logrotate.d/roundcube

Exemple de fichier /etc/logrotate.d/roundcube

/var/log/roundcube/errors  /var/log/roundcube/sendmail {
        daily
        missingok
        rotate 10
        compress
        delaycompress
        notifempty
        create 640 www-data www-data
}

Exemple de fichier /etc/apache2/sites-available/roundcube

<VirtualHost *:80>
  DocumentRoot /var/lib/roundcube
  ServerName webmail.tcweb.org
  ServerAlias webmail.tcweb.fr
  ServerAlias webmail.tcweb.eu

# redirect to https when available (thanks omen@descolada.dartmouth.edu)
#
#  Note: There are multiple ways to do this, and which one is suitable for
#  your site's configuration depends. Consult the apache documentation if
#  you're unsure, as this example might not work everywhere.
#
<IfModule mod_rewrite.c>
  <IfModule mod_ssl.c>
    <Location />
      RewriteEngine on
      RewriteCond %{HTTPS} !^on$ [NC]
      RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}  [L]
    </Location>
  </IfModule>
</IfModule>

</VirtualHost>

# Le vhost en https
<VirtualHost *:443>
  DocumentRoot /var/lib/roundcube
  ServerName webmail.tcweb.org
  ServerAlias webmail.tcweb.fr
  ServerAlias webmail.tcweb.eu

  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/tcweb.org.pem
</VirtualHost>