Outils personnels
Vous êtes ici : Accueil GNU / Linux Debian 4.0 Etch Installer le CRM vTiger sur Debian 4.0 Etch
Navigation
 
Un poste de développeur PHP est à pourvoir dans mon entreprise ! Si vous êtes intéressé, plus de détails sont disponibles sur la page consacrée à l'offre d'emploi de développeur PHP.
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Installer le CRM vTiger sur Debian 4.0 Etch

Par Pierre-Yves Landuré Dernière modification 03/02/2009 22:38

vTiger est un CRM (cad. Client Relation Management) libre et gratuit écrit en PHP / MySQL. Bien que son rythme de développement soit plutôt lent, il dispose de nombreuses fonctionnalités. C'est un bon outil qui vous évitera l'investissement dans un CRM propriétaire. Ce guide vous facilite son installation sur Debian 4.0 Etch.

Prérequis

Server HTTP

En premier lieu, il vous faut un serveur HTTP avec support du PHP. Vous pouvez par exemple utiliser Lighttpd comme décrit dans mon guide Installer Lighttpd et PHP 5 sur Debian 4.0 Etch.

Nous installons en plus les modules nécessaires au bon fonctionnement de vTiger :

/usr/bin/apt-get install php5-mysql php5-imap php5-gd unzip

Nous modifions la configuration de PHP pour qu'elle soit adaptée à vTiger:

  • Pour LigHTTPd:
    /bin/sed -i -e 's/max_execution_time = [^;]*/max_execution_time = 600/' \
    -e 's/output_buffering = .*/output_buffering = On/' \
    -e 's/memory_limit = [^;]*/memory_limit = 64M/' \
    -e 's/post_max_size = .*/post_max_size = 18M/' \
    -e 's/upload_max_filesize = .*/upload_max_filesize = 10M/' \
    /etc/php5/cgi/php.ini
  • Pour Apache 2:
    /bin/sed -i -e 's/max_execution_time = [^;]*/max_execution_time = 600/' \
    -e 's/output_buffering = .*/output_buffering = On/' \
    -e 's/memory_limit = [^;]*/memory_limit = 64M/' \
    -e 's/post_max_size = .*/post_max_size = 18M/' \
    -e 's/upload_max_filesize = .*/upload_max_filesize = 10M/' \
    /etc/php5/apache2/php.ini

N'oubliez pas de redémarrer votre serveur HTTP. Par exemple, pour LigHTTPd:

/etc/init.d/lighttpd force-reload

Base de données MySQL

Vous devez créer une base de donnée VTIGERCRM pour votre installation. Pour ce faire, vous pouvez suivre mon guide MySQL sur Debian 4.0 Etch.

Une fois la base de donnée créée, nous plaçons une valeur par défaut pour le nom d'hôte du serveur de la base de données:

if [ -z "$MYSQL_HOST" ]; then
MYSQL_HOST=localhost
fi

Attention : Si vous avez suivi mon guide, vous pouvez passer ces lignes de commandes, sinon, remplacer les informations en gras par celles correspondant à votre base de données MySQL :

MYSQL_HOST=localhost
MYSQL_DB=VTIGERCRM
MYSQL_USERNAME=vtigercrm
MYSQL_USERPWD=vtigercrm_password

Installation

Vous devez télécharger la dernière version de vTiger. Pour ce faire, renseignez la version que vous souhaitez télécharger :

VERSION=5.0.4

Choisissez le nom de votre instance vTiger (cad. le nom du dossier créé dans /opt et contenant l'installation de vTiger. Ce paramètre permet d'installer plusieurs vTiger sur un même serveur en suivant ce guide) :

VTIGER_NAME=vtigercrm

Lancez le téléchargement :

/usr/bin/wget http://garr.dl.sourceforge.net/sourceforge/vtigercrm/vtigercrm-${VERSION}.tar.gz \
--output-document=/tmp/vtigercrm-${VERSION}.tar.gz

Une fois le téléchargement terminé, décompressez le fichier :

/bin/tar --directory=/tmp -xzf /tmp/vtigercrm-${VERSION}.tar.gz

Et placez le à l'emplacement adéquat :

/bin/mv /tmp/vtigercrm /opt/${VTIGER_NAME}

Nous allons placer les fichiers pouvant être modifié par le server web (dossiers uploads, themes, etc...) dans le dossier (ou la partition) /var qui est destinée à contenir les éléments "variables" du système:

/bin/mkdir --parent /var/lib/vtigercrm/${VTIGER_NAME}
/bin/mkdir --parent /var/lib/vtigercrm/${VTIGER_NAME}/Smarty
/bin/mkdir --parent /var/lib/vtigercrm/${VTIGER_NAME}/modules/Emails
/bin/mkdir --parent /var/lib/vtigercrm/${VTIGER_NAME}/modules/Webmails
/bin/mkdir --parent /var/lib/vtigercrm/${VTIGER_NAME}/test
/bin/mv /opt/${VTIGER_NAME}/cache /var/lib/vtigercrm/${VTIGER_NAME}
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/cache /opt/${VTIGER_NAME}/
/bin/mv /opt/${VTIGER_NAME}/storage /var/lib/vtigercrm/${VTIGER_NAME}
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/storage /opt/${VTIGER_NAME}/
/bin/mv /opt/${VTIGER_NAME}/logs /var/lib/vtigercrm/${VTIGER_NAME}
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/logs /opt/${VTIGER_NAME}/
/bin/mv /opt/${VTIGER_NAME}/tabdata.php /var/lib/vtigercrm/${VTIGER_NAME}
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/tabdata.php /opt/${VTIGER_NAME}/
/bin/mv /opt/${VTIGER_NAME}/parent_tabdata.php /var/lib/vtigercrm/${VTIGER_NAME}
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/parent_tabdata.php /opt/${VTIGER_NAME}/
/bin/mv /opt/${VTIGER_NAME}/user_privileges /var/lib/vtigercrm/${VTIGER_NAME}
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/user_privileges /opt/${VTIGER_NAME}/
/bin/mv /opt/${VTIGER_NAME}/Smarty/cache /var/lib/vtigercrm/${VTIGER_NAME}/Smarty
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/Smarty/cache /opt/${VTIGER_NAME}/Smarty/
/bin/mv /opt/${VTIGER_NAME}/Smarty/templates_c /var/lib/vtigercrm/${VTIGER_NAME}/Smarty
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/Smarty/templates_c /opt/${VTIGER_NAME}/Smarty/
/bin/mv /opt/${VTIGER_NAME}/modules/Emails/templates /var/lib/vtigercrm/${VTIGER_NAME}/modules/Emails
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/modules/Emails/templates /opt/${VTIGER_NAME}/modules/Emails/
/bin/mv /opt/${VTIGER_NAME}/modules/Webmails/tmp /var/lib/vtigercrm/${VTIGER_NAME}/modules/Webmails
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/modules/Webmails/tmp /opt/${VTIGER_NAME}/modules/Webmails/
/bin/mv /opt/${VTIGER_NAME}/test/wordtemplatedownload /var/lib/vtigercrm/${VTIGER_NAME}/test
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/test/wordtemplatedownload /opt/${VTIGER_NAME}/test/
/bin/mv /opt/${VTIGER_NAME}/test/product /var/lib/vtigercrm/${VTIGER_NAME}/test
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/test/product /opt/${VTIGER_NAME}/test/
/bin/mv /opt/${VTIGER_NAME}/test/user /var/lib/vtigercrm/${VTIGER_NAME}/test
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/test/user /opt/${VTIGER_NAME}/test/
/bin/mv /opt/${VTIGER_NAME}/test/contact /var/lib/vtigercrm/${VTIGER_NAME}/test
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/test/contact /opt/${VTIGER_NAME}/test/
/bin/mv /opt/${VTIGER_NAME}/test/logo /var/lib/vtigercrm/${VTIGER_NAME}/test
/bin/ln -s /var/lib/vtigercrm/${VTIGER_NAME}/test/logo /opt/${VTIGER_NAME}/test/

Nous mettons en place les permissions adéquates:

/bin/chown -R root:root /opt/${VTIGER_NAME}
/bin/chmod -R o-w /opt/${VTIGER_NAME}
/bin/chown -R www-data:www-data /var/lib/vtigercrm/${VTIGER_NAME}
/bin/chown -R www-data:www-data /opt/${VTIGER_NAME}/install
/bin/chown -R www-data:www-data /opt/${VTIGER_NAME}/install.php
/bin/chown -R www-data:www-data /opt/${VTIGER_NAME}/config.inc.php

Nous insérons la configuration de la base de données dans le fichier de configuration de vTiger:

/bin/echo "<?php
include('vtigerversion.php');
\$dbconfig['db_server'] = '$MYSQL_HOST';
\$dbconfig['db_port'] = ':3306';
\$dbconfig['db_username'] = '$MYSQL_USERNAME';
\$dbconfig['db_password'] = '$MYSQL_USERPWD';
\$dbconfig['db_name'] = '$MYSQL_DB';
\$dbconfig['db_type'] = 'mysql';" \
| /usr/bin/tee /opt/${VTIGER_NAME}/config.inc.php

Et nous créons un lien symbolique dans le dossier /var/www:

/bin/ln -s /opt/${VTIGER_NAME} /var/www/

Une fois ceci fait, vous pouvez supprimer l'archive téléchargée :

/bin/rm /tmp/vtigercrm-${VERSION}.tar.gz

Patch de sécurité pour la version 5.0.4

Dans le cas où vous avez installé la version 5.0.4 de vTiger (il s'agit de la dernière version à l'heure ou j'écris ce guide), il est nécessaire d'appliquer un correctif de sécurité qui ferme quelques failles importantes. En premier lieu, téléchargez le patch de sécurité:

/usr/bin/wget http://heanet.dl.sourceforge.net/sourceforge/vtigercrm/VtigerCRM504_Security_Patch.zip \
--output-document=/tmp/VtigerCRM504_Security_Patch.zip

Une fois ceci fait, décompressez le patch dans votre dossier vTiger pour l'installer:

/usr/bin/unzip -o /tmp/VtigerCRM504_Security_Patch.zip -d /opt/${VTIGER_NAME}

Vous pouvez maintenant supprimer l'archive du patch:

/bin/rm /tmp/VtigerCRM504_Security_Patch.zip

Configuration

Nous devons maintenant configurer Tiny Tiny RSS. Pour ce faire, visitez l'adresse suivante:

http://localhost/vtigercrm/install.php

En renseignez les paramètres qui vous sont demandés: Identifiant et mot de passe de l'administrateur, monnaie que vous utilisez (Euro pour la plupart d'entre vous :), etc.
Remarque: Il est inutile de modifier les paramètres de connection à la base de données. Les paramètres indiqués par défaut sont corrects grâce à la petite astuce que nous avons utilisé précédement.

Une fois la configuration terminée, nous allons faire un peu de ménage et supprimer les fichiers inutiles:

/bin/rm -r /opt/${VTIGER_NAME}/install
/bin/rm /opt/${VTIGER_NAME}/install.php
/bin/rm /opt/${VTIGER_NAME}/LICENSE_AGREEMENT.txt
/bin/rm /opt/${VTIGER_NAME}/LICENSE.txt
/bin/rm /opt/${VTIGER_NAME}/Copyright.txt
/bin/rm /opt/${VTIGER_NAME}/DEPENDENCIES.txt
/bin/rm /opt/${VTIGER_NAME}/README.txt

Nous protégeons le fichier de configuration:

/bin/chown root:root /opt/${VTIGER_NAME}/config.inc.php

Et nous désactiveons le listing du contenu des dossiers pour ceux d'entre-vous qui utilisent Apache:

/bin/mv /opt/${VTIGER_NAME}/htaccess.txt /opt/${VTIGER_NAME}/.htaccess

Pour aller plus loin

Traduire vTiger en Français

Si l'anglais n'est pas votre langue native (ce qui est hautement probable si vous lisez cette page), voici la procédure pour traduire vTiger en Français. En premier lieu, téléchargez la traduction en Français:

/usr/bin/wget http://forge.vtiger.com/frs/download.php/575/LanguagePack_fr_504_1-1.zip \
--output-document=/tmp/LanguagePack_fr_504_1-1.zip

Appliquez le patch:

/usr/bin/unzip -o /tmp/LanguagePack_fr_504_1-1.zip -d /opt/${VTIGER_NAME}

Configurez vTiger pour prendre en compte ce path:

/bin/sed -i -e "s/\(\$languages[ ]*=[ ]*array(\)\(.*);\)/\1'fr_fr' => 'Fran\&ccedil;ais', \2/i" \
/opt/${VTIGER_NAME}/config.inc.php

Remarque: Si vous souhaitez que le Français soit la langue par défaut, utilisez:

/bin/sed -i -e "s/\(\$default_language[ ]*=\).*/\1 'fr_fr';/i" \
/opt/${VTIGER_NAME}/config.inc.php

Vous pouvez maintenant nettoyer votre installation de vTiger:

rm /opt/${VTIGER_NAME}/Readme_packfr.txt

Et supprimer l'archive du pack de langues:

/bin/rm /tmp/LanguagePack_fr_504_1-1.zip

Sauvegardes

Pour sauvegarder votre installation vTiger, élément très important puisque les données d'un CRM sont des données sensibles, je vous conseille d'utiliser Backup Manager. Pour l'installer, vous pouvez suivre mon guide:

Installer et configurer Backup Manager sur Debian 4.0 Etch

Une fois Backup Manager installé, vous pouvez configurer la sauvegarde des fichiers de vTiger avec les commandes suivantes:

/usr/bin/update-bm-folders add /opt/${VTIGER_NAME}
/usr/bin/update-bm-folders add /var/lib/vtigercrm/${VTIGER_NAME}

Important: Sauvegarder les fichiers ne suffit pas ! Il faut aussi sauvegarder la base de données. La procédure pour ce faire est disponible dans mon article MySQL sur Debian 4.0 Etch.

Remerciements

  • Merci aux développeurs de vTiger.

Excellent comme d'habitude

Posté par tesnux le 11/12/2008 18:25
Comme le dit le sujet du commentaire "Excellent comme d'habitude"
merci encore pour ta prose qui est souvent d'un grand secours.
Pourrais tu rajouter comme tu sais si bien le faire, grâce à une expression régulière,
le changement de l'encodage des pages.
En effet la variable $default_charset du config.inc.php est par defaut = 'ISO-8859-1'.

Merci encore pour ton travail


Je confirme, très bon tuto

Posté par Kiwis le 18/05/2009 18:42
Salut,

Je confirme de la qualité de ce tuto. Je me suis bien appuyé dessus et je ne le regrette pas.

Un merci à l'auteur de l'article.

Excellent

Posté par apox le 18/06/2009 18:50
Très bon tuto, merci à toi!

Excellent tuto

Posté par sm@rt le 13/03/2010 01:20
Merci pour ce tuto c'est du bon travail !


Réalisé avec le CMS Plone, le système de gestion de contenu Open Source

Ce site respecte les normes suivantes :