Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
sysadmin:install_roundcube [2009/12/05 10:39] james ajout MBD2 backports |
sysadmin:install_roundcube [2011/04/01 12:37] james ajout requetes SQL |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
===== Prérequis ===== | ===== Prérequis ===== | ||
- | L'installation sera effectuée sur une [[http://www.debian.org]] debian stable (lenny a l'heure ou ce tutorial est écrit) disposant d'un serveur web [[http://www.apache.org|apache2]] gérant le [[http://php.net|php]] et assumant que vous avez un serveur [[http://www.mysql.fr|mysql]]. | + | L'installation sera effectuée sur une [[http://www.debian.org|debian]] stable (lenny a l'heure ou ce tutorial est écrit) disposant d'un serveur web [[http://www.apache.org|apache2]] gérant le [[http://php.net|php]] et assumant que vous avez un serveur [[http://www.mysql.fr|mysql]] installé et fonctionnel. |
==== Téléchargement de roundcube ==== | ==== Téléchargement de roundcube ==== | ||
Ligne 30: | Ligne 30: | ||
- | ====== Installation ====== | + | ===== Installation ===== |
==== decompression de l'archive ==== | ==== decompression de l'archive ==== | ||
Ligne 41: | Ligne 41: | ||
==== configuration du vhost apache ==== | ==== configuration du vhost apache ==== | ||
- | Créer un fichier /etc/apache2/sites-available/webmail.mondomaine.com) contenant :<code> | + | Créer un fichier /etc/apache2/sites-available/webmail.mondomaine.com contenant :<code> |
####################################### | ####################################### | ||
# VirtualHost pour le webmail # | # VirtualHost pour le webmail # | ||
Ligne 71: | Ligne 71: | ||
php_value memory_limit "25M" | php_value memory_limit "25M" | ||
php_value file_uploads "10M" | php_value file_uploads "10M" | ||
+ | php_value date.timezone "Europe/Paris" | ||
</Directory> | </Directory> | ||
Ligne 98: | Ligne 99: | ||
</Virtualhost> | </Virtualhost> | ||
</code> | </code> | ||
+ | |||
==== Paramétrage ==== | ==== Paramétrage ==== | ||
* Nous allons paramétrer roundcube en utilisant les standards debian : la configuration se fait dans /etc/roundcube.<code> | * Nous allons paramétrer roundcube en utilisant les standards debian : la configuration se fait dans /etc/roundcube.<code> | ||
Ligne 134: | Ligne 136: | ||
* Population de la base de données :<code> | * Population de la base de données :<code> | ||
mysql -u roundcube -p roundcubemail < /var/www/webmail.mondomaine.com/SQL/mysql.initial.sql | mysql -u roundcube -p roundcubemail < /var/www/webmail.mondomaine.com/SQL/mysql.initial.sql | ||
+ | </code> | ||
+ | ==== Finalisation de l'installation ==== | ||
+ | * activer le site :<code> | ||
+ | a2ensite webmail.mondomaine.com | ||
+ | /etc/init.d/apache2 restart | ||
+ | </code> | ||
+ | * Aller sur [[https://webmail.mondomaine.com/installer/]] \\ Il ne devrait pas y avoir de "NOT OK" vous empechant d'accéder a l'etape 2 qui va créer effectivement la configuration. | ||
+ | * Vous pouvez ensuite vérfifier a l'étape 3 que vous pouvez : | ||
+ | * envoyer un email depuis roundcube | ||
+ | * vous connecter sur votre serveur imap | ||
+ | <note important>IL faut maintenant empecher tout acces a l'instalateur : | ||
+ | * editer le fichier /etc/roundcube/main.inc.php pour remettre<code>$rcmail_config['enable_installer'] = false;</code> | ||
+ | * exécutez la commande suivante pour interdi l'acces aux répertoires :<code>chmod go-rwx /var/www/webmail.mondomaine.com/installer/</code> | ||
+ | </note> | ||
+ | * Editer le fichier /etc/roundcube/main.inc.php pour déclarer votre serveur IMAP, dans notre cas localhost :<code> | ||
+ | $rcmail_config['default_host'] = 'localhost';</code> | ||
+ | |||
+ | ===== Enjoy ===== | ||
+ | Et voila : maintenant vous devriez avoir un superbe webmail accessible via [[https://webmail.mondomaine.com]] :-) | ||
+ | |||
+ | ====== Mise à jour du webmail roundcube ====== | ||
+ | |||
+ | Pas mal de temps a passé depuis cette installation initiale, et la version 0.5.1 de roundcube est maintenant disponible. | ||
+ | Entre temps la version stable de debian est passée de lenny a squeeze, le serveur ayant été mis a jour en squeeze, cette mise a jour de roundcube va être effectuée sur cette version | ||
+ | |||
+ | Les notes de mises a jour sont disponibles [ici|http://trac.roundcube.net/wiki/Howto_Upgrade], voici les commandes que j'ai utilisé : | ||
+ | |||
+ | ===== Recupération et décompression de l'archive ===== | ||
+ | * récupérer les sources (la encore les dépendances seront installées/mises a jour à la main : on choisit donc la version téléchargeable sans dépendances) | ||
+ | <code> | ||
+ | cd /var/www/ | ||
+ | wget http://sourceforge.net/projects/roundcubemail/files/roundcubemail-dependent/0.5.1/roundcubemail-0.5.1-dep.tar.gz/download -O roundcubemail-0.5.1-dep.tar.gz | ||
+ | tar xvzf roundcubemail-0.5.1-dep.tar.gz | ||
+ | </code> | ||
+ | * réparer les permissions (ou www-data est le groupe de l'utilisateur faisant tourner votre serveur web) | ||
+ | <code> | ||
+ | chown root:root -R roundcubemail-0.5.1-dep | ||
+ | cd roundcubemail-0.5.1-dep | ||
+ | chgrp www-data logs/ temp/ && chmod g+w logs/ temp/ | ||
+ | </code> | ||
+ | |||
+ | ===== Installation des nouvelles dépendances ===== | ||
+ | Il est conseillé d'installer cette dépendance pour l'internationalisation :<code> | ||
+ | apt-get install php5-intl</code> | ||
+ | Il faut ensuite recharger la configuration d'apache :<code> | ||
+ | /etc/init.d/apache2 reload</code> | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | <code> | ||
+ | cd /var/www/roundcubemail-0.5.1-dep | ||
+ | mv config/ config.ORIG | ||
+ | ln -s /etc/roundcube config | ||
+ | </code> | ||
+ | |||
+ | Reporter les nouvelles options de configuration dans les anciens fichiers entre les versions 0.3.1 et la 0.5.1 | ||
+ | * ces lignes ont été ajoutées dans le fichier db.inc.php :<code> | ||
+ | $rcmail_config['db_table_contactgroups'] = 'contactgroups'; | ||
+ | $rcmail_config['db_table_contactgroupmembers'] = 'contactgroupmembers';</code> | ||
+ | * pour le fichier main.inc.php vimdiff est votre ami (trop de modifications pour tout reporter ici ;p) | ||
+ | * ces lignes ont été ajoutées dans le fichier mimetypes.php :<code> | ||
+ | 'pdf' => 'application/pdf', | ||
+ | 'ics' => 'text/calendar', | ||
+ | </code> | ||
+ | |||
+ | ===== Upgrade de la base de donnée ===== | ||
+ | * Ouvrir un shell mysql sur la base roundcube. | ||
+ | * Lancer les requetes contenues dans le fichier /var/www/roundcubemail-0.5.1-dep/SQL/mysql.update.sql correspondantes a l'upgrade en cours. Il faut donc ici (mise a jour 0.3.1 -> 0.5.1) | ||
+ | lancer les commandes situées apres la balise :<code> | ||
+ | -- Updates from version 0.3.1</code> | ||
+ | Voici la liste complete :<code> | ||
+ | SET FOREIGN_KEY_CHECKS=0; | ||
+ | ALTER TABLE `messages` DROP FOREIGN KEY `user_id_fk_messages`; | ||
+ | ALTER TABLE `cache` DROP FOREIGN KEY `user_id_fk_cache`; | ||
+ | ALTER TABLE `contacts` DROP FOREIGN KEY `user_id_fk_contacts`; | ||
+ | ALTER TABLE `identities` DROP FOREIGN KEY `user_id_fk_identities`; | ||
+ | |||
+ | ALTER TABLE `messages` ADD CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`) | ||
+ | REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; | ||
+ | ALTER TABLE `cache` ADD CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`) | ||
+ | REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; | ||
+ | ALTER TABLE `contacts` ADD CONSTRAINT `user_id_fk_contacts` FOREIGN KEY (`user_id`) | ||
+ | REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; | ||
+ | ALTER TABLE `identities` ADD CONSTRAINT `user_id_fk_identities` FOREIGN KEY (`user_id`) | ||
+ | REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE; | ||
+ | |||
+ | ALTER TABLE `contacts` ALTER `name` SET DEFAULT ''; | ||
+ | ALTER TABLE `contacts` ALTER `firstname` SET DEFAULT ''; | ||
+ | ALTER TABLE `contacts` ALTER `surname` SET DEFAULT ''; | ||
+ | |||
+ | ALTER TABLE `identities` ADD INDEX `user_identities_index` (`user_id`, `del`); | ||
+ | ALTER TABLE `identities` ADD `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00' AFTER `user_id`; | ||
+ | |||
+ | CREATE TABLE `contactgroups` ( | ||
+ | `contactgroup_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
+ | `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0', | ||
+ | `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', | ||
+ | `del` tinyint(1) NOT NULL DEFAULT '0', | ||
+ | `name` varchar(128) NOT NULL DEFAULT '', | ||
+ | PRIMARY KEY(`contactgroup_id`), | ||
+ | CONSTRAINT `user_id_fk_contactgroups` FOREIGN KEY (`user_id`) | ||
+ | REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE, | ||
+ | INDEX `contactgroups_user_index` (`user_id`,`del`) | ||
+ | ) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; | ||
+ | |||
+ | CREATE TABLE `contactgroupmembers` ( | ||
+ | `contactgroup_id` int(10) UNSIGNED NOT NULL, | ||
+ | `contact_id` int(10) UNSIGNED NOT NULL DEFAULT '0', | ||
+ | `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', | ||
+ | PRIMARY KEY (`contactgroup_id`, `contact_id`), | ||
+ | CONSTRAINT `contactgroup_id_fk_contactgroups` FOREIGN KEY (`contactgroup_id`) | ||
+ | REFERENCES `contactgroups`(`contactgroup_id`) ON DELETE CASCADE ON UPDATE CASCADE, | ||
+ | CONSTRAINT `contact_id_fk_contacts` FOREIGN KEY (`contact_id`) | ||
+ | REFERENCES `contacts`(`contact_id`) ON DELETE CASCADE ON UPDATE CASCADE | ||
+ | ) /*!40000 ENGINE=INNODB */; | ||
+ | |||
+ | SET FOREIGN_KEY_CHECKS=1 ; | ||
+ | |||
+ | ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL; | ||
+ | UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00'; | ||
+ | |||
+ | ALTER TABLE `users` DROP INDEX `username_index`; | ||
+ | ALTER TABLE `users` ADD UNIQUE `username` (`username`, `mail_host`); | ||
+ | |||
+ | ALTER TABLE `contacts` MODIFY `email` varchar(255) NOT NULL; | ||
+ | |||
+ | TRUNCATE TABLE `messages`; | ||
</code> | </code> | ||