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 | ||
sysadmin:install_roundcube [2009/12/05 11:00] james ajout serveur IMAP webmail |
sysadmin:install_roundcube [2014/10/30 11:10] james modif tags |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>mail webmail roundcube installation apache}} | ||
====== Installation du webmail roundcube ====== | ====== Installation du webmail roundcube ====== | ||
[[http://roundcube.net| Rouncube]] est un webmail en ajax qui a une p'tite bouille fort sympatique comme vous pouvez le voir sur ces [[http://roundcube.net/screens|screenhots]]. | [[http://roundcube.net| Rouncube]] est un webmail en ajax qui a une p'tite bouille fort sympatique comme vous pouvez le voir sur ces [[http://roundcube.net/screens|screenhots]]. | ||
Ligne 4: | Ligne 5: | ||
===== 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 ==== | ||
la derniere version peut etre trouvée ici : http://roundcube.net/download, prendre la version "GPL (dependent)" car nous allons installer les dependances nous meme. | la derniere version peut etre trouvée ici : http://roundcube.net/download, prendre la version "GPL (dependent)" car nous allons installer les dependances nous meme. | ||
==== Installation des logiciels requis ==== | ==== Installation des logiciels requis ==== | ||
+ | <note important>Cette section est obsolète en debian squeeze, regardez en bas de cette page</note> | ||
<code> | <code> | ||
apt-get install openssl aspell-fr php5-gd php5-mcrypt php5-mcrypt php5-dev libmagic-dev php5-mysql | apt-get install openssl aspell-fr php5-gd php5-mcrypt php5-mcrypt php5-dev libmagic-dev php5-mysql | ||
Ligne 138: | Ligne 140: | ||
</code> | </code> | ||
==== Finalisation de l'installation ==== | ==== 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. | * 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 : | * Vous pouvez ensuite vérfifier a l'étape 3 que vous pouvez : | ||
Ligne 151: | Ligne 157: | ||
===== Enjoy ===== | ===== Enjoy ===== | ||
Et voila : maintenant vous devriez avoir un superbe webmail accessible via [[https://webmail.mondomaine.com]] :-) | 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 [[http://trac.roundcube.net/wiki/Howto_Upgrade|ici]], 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> | ||
+ | |||
+ | |||
+ | ====== Installation des logiciels requis sous debian squeeze ====== | ||
+ | installation des dépendances :<code># apt-get install php5-gd php5-intl php5-mcrypt php5-pspell libmagic1</code> | ||
+ | installation des modules PEAR nécessaires :<code># apt-get install php-auth php-mdb2 php-mdb2-driver-mysql php-mail-mime php-net-smtp php-net-socket</code> | ||