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 10:24] james typo |
sysadmin:install_roundcube [2014/10/30 11:10] (Version actuelle) 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 : 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. | + | ==== 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. | |
- | * Installation des logiciels requis :<code> | + | ==== Installation des logiciels requis ==== |
- | apt-get install openssl aspell-fr php5-gd php5-mcrypt php5-mcrypt php5-dev libmagic-dev | + | <note important>Cette section est obsolète en debian squeeze, regardez en bas de cette page</note> |
+ | <code> | ||
+ | apt-get install openssl aspell-fr php5-gd php5-mcrypt php5-mcrypt php5-dev libmagic-dev php5-mysql | ||
# et les librairies PHP PEAR (disponibles sous forme de paquets debian) : | # et les librairies PHP PEAR (disponibles sous forme de paquets debian) : | ||
apt-get install php-auth php-net-smtp php-net-socket php-mail-mime libmagic1 php5-pspell libjs-jquery | apt-get install php-auth php-net-smtp php-net-socket php-mail-mime libmagic1 php5-pspell libjs-jquery | ||
Ligne 15: | Ligne 18: | ||
pecl install Fileinfo | pecl install Fileinfo | ||
</code> | </code> | ||
+ | Certaines librairies PEAR ne sont pas disponible dans les depots debian officiels, mais ils le sont dans les depots [[http://www.backports.org|backports]] : nous allons donc utiliser ces versions :<code> | ||
+ | cd /tmp | ||
+ | wget http://www.backports.org/debian/pool/main/p/php-mdb2/php-mdb2_2.5.0b2-1~bpo50+1_all.deb | ||
+ | wget http://www.backports.org/debian/pool/main/p/php-mdb2-driver-mysql/php-mdb2-driver-mysql_1.5.0b2-1~bpo50+1_all.deb | ||
+ | dpkg -i php-mdb2_2.5.0b2-1~bpo50+1_all.deb | ||
+ | dpkg -i php-mdb2-driver-mysql_1.5.0b2-1~bpo50+1_all.deb | ||
+ | </code> | ||
+ | Ajouter dans les fichiers /etc/php5/cli/php.ini et /etc/php5/apache2/php.ini : <code>extension=fileinfo.so</code> | ||
- | * Configuration : | + | Un (re)démarrage de apache est nécessaire pour prendre ces changements en compte :<code> |
- | * ajouter dans les fichiers /etc/php5/cli/php.ini et /etc/php5/apache2/php.ini : <code>extension=fileinfo.so</code> dans les fichiers /etc/php5/cli/php.ini et /etc/php5/apache2/php.ini | + | /etc/init.d/apache2 restart |
- | * | + | </code> |
- | ====== Installation ====== | + | ===== Installation ===== |
==== decompression de l'archive ==== | ==== decompression de l'archive ==== | ||
Ligne 32: | Ligne 43: | ||
==== 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 62: | Ligne 73: | ||
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 89: | Ligne 101: | ||
</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 126: | Ligne 139: | ||
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> | </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 [[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> | ||