Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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/04 23:47]
james ajout population BD
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+<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-mdb2 ​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 
 +# la librairie PECL fileinfo 
 +pecl install Fileinfo 
 +</​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>​ 
 + 
 +Un (re)démarrage de apache est nécessaire pour prendre ces changements en compte :<​code>​ 
 +/​etc/​init.d/​apache2 restart 
 +</​code>​ 
 + 
 + 
 +===== Installation ===== 
 + 
 +==== decompression de l'​archive ==== 
 +<​code>​ 
 +cd /var/www 
 +tar xvzf roundcubemail-0.3.1-dep.tar.gz 
 +chown -R root:root roundcubemail-0.3.1-dep 
 +ln -s roundcubemail-0.3.1-dep webmail.mondomaine.com
 </​code>​ </​code>​
  
-  * decompression de l'​archive +==== configuration du vhost apache ​ ​==== 
-  * configuration du vhost apache ​(fichier /​etc/​apache2/​sites-available/​webmail.mondomaine.com:<​code>​+Créer un fichier /​etc/​apache2/​sites-available/​webmail.mondomaine.com ​contenant ​:<​code>​
 #######################################​ #######################################​
 #   ​VirtualHost pour le webmail ​      # #   ​VirtualHost pour le webmail ​      #
Ligne 45: 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 73: Ligne 102:
 </​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>​
 mkdir /​etc/​roundcube mkdir /​etc/​roundcube
 cp /​var/​www/​webmail.mondomaine.com/​config/​* /​etc/​roundcube/​ cp /​var/​www/​webmail.mondomaine.com/​config/​* /​etc/​roundcube/​
Ligne 81: Ligne 110:
 ln -s /​etc/​roundcube/​ /​var/​www/​webmail.mondomaine.com/​config ln -s /​etc/​roundcube/​ /​var/​www/​webmail.mondomaine.com/​config
 </​code>​ </​code>​
-    ​Editer ​les fichiers /​etc/​roundcube/​db.inc.php.dist , /​etc/​roundcube/​main.inc.php.dist ​en les renommant ​respectivement en /​etc/​roundcube/​db.inc.php et /​etc/​roundcube/​main.inc.php +  ​Renommer ​les fichiers /​etc/​roundcube/​db.inc.php.dist , /​etc/​roundcube/​main.inc.php.dist respectivement en /​etc/​roundcube/​db.inc.php et /​etc/​roundcube/​main.inc.php 
-       ​* La seule ligne qui nous intéresse dans le fichier db.inc.php est :<​code>​+  * protéger le fichier /​etc/​roundcube/​db.inc.php :<​code>​ 
 +chown root:​www-data /​etc/​roundcube/​db.inc.php 
 +chmod 644 /​etc/​roundcube/​db.inc.php 
 +</​code>​ 
 +  ​* La seule ligne qui nous intéresse dans le fichier db.inc.php est :<​code>​
 $rcmail_config['​db_dsnw'​] = '​mysql://​roundcube:​password@localhost/​roundcubemail';​ $rcmail_config['​db_dsnw'​] = '​mysql://​roundcube:​password@localhost/​roundcubemail';​
 </​code>​qu'​il faut adapter : dans ce cas, il s'agit d'un serveur mysql sur la meme machine, un utilisateur nommé "​roundcube"​ utilisant le mot de passe "​password"​ pour accéder a la base de données "​roundcubemail"​ </​code>​qu'​il faut adapter : dans ce cas, il s'agit d'un serveur mysql sur la meme machine, un utilisateur nommé "​roundcube"​ utilisant le mot de passe "​password"​ pour accéder a la base de données "​roundcubemail"​
 <​note>​Il vaut mieux choisir et mettre un vrai mot de passe, par exemple généré à l'aide de la commande "​pwgen"</​note>​ <​note>​Il vaut mieux choisir et mettre un vrai mot de passe, par exemple généré à l'aide de la commande "​pwgen"</​note>​
 +  * fichier /​etc/​roundcube/​main.inc.php : mettre le temps de l'​installation :<​code>​$rcmail_config['​enable_installer'​] = true;</​code>​
  
-     protéger ​le fichier ​/​etc/​roundcube/​db.inc.php :<​code>​ +  ​ ​Reglage des permissions sur les repertoires (en accord avec le fichier ​de configuration "main.inc.php"​) ​:<​code>​ 
-chown root:​www-data /etc/roundcube/​db.inc.php +chown root:​www-data ​templogs
-chmod 644 /etc/roundcube/​db.inc.php+chmod g+rwx templogs/
 </​code>​ </​code>​
  
 +==== base de donnée MySQL ====
   * Création de la base de données :<​code>​   * Création de la base de données :<​code>​
 mysql -u root -p mysql -u root -p
Ligne 104: 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>​
  
-  *  Reglage des permissions sur les repertoires (en accord avec le fichier ​de configuration "main.inc.php"​) ​:<​code>​ +===== Enjoy ===== 
-chown root:​www-data templogs+Et voila : maintenant vous devriez avoir un superbe webmail accessible via [[https://​webmail.mondomaine.com]] :-) 
-chmod g+rwx templogs/+ 
 +====== 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>​ </​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>​
 +
sysadmin/install_roundcube.1259966857.txt.gz · Dernière modification: 2009/12/04 23:47 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0