Installer le CRM vTiger sur Debian
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.
Ce guide a été testé sur :
- Debian 6.0 Squeeze
Pré-requis
Ce guide nécessite un serveur MySQL disposant du script mysql-tools disponible dans le guide Installer et configurer MySQL sur Debian.
Ce guide nécessite un serveur HTTP avec support du PHP disposant au choix d'un des scripts suivant :
- Le script a2tools disponible dans mon guide Installer Apache 2 sur Debian.
- Le script lighty-tools disponible dans mon guide Installer Lighttpd et PHP 5 sur Debian.
Paramètres
Renseignez le nom de domaine ou sera disponible l'application :
DOMAIN="crm.domaine-exemple.fr"
Renseignez le nom d'hôte de votre serveur MySQL (si vous ne savez pas de quoi il s'agit, ne modifiez pas cette valeur) :
MYSQL_HOST="localhost"
Si votre serveur MySQL n'est pas local, ce guide effectuera une connexion SSH pour y créer la base de données.
Installation
Installez les logiciels et modules PHP nécessaires à l'installation et au bon fonctionnement de l'application :
command apt-get install php5-mysql php5-imap php5-gd unzip
Augmentez aussi la limite mémoire de PHP pour vTiger :
MEMORY_LIMIT="64M" if [ -e "/etc/php5/conf.d/memory-limit.ini" ]; then CURRENT_MEMORY_LIMIT=$(command grep 'memory_limit' /etc/php5/conf.d/memory-limit.ini \ | command cut --delimiter='=' --fields='2-' \ | command sed -e 's/^[ \t]*//g') if [ "$(echo "${CURRENT_MEMORY_LIMIT}" | command sed -e 's/M$//g')" \ -gt "$(echo "${MEMORY_LIMIT}" | command sed -e 's/M$//g')" ]; then MEMORY_LIMIT="${CURRENT_MEMORY_LIMIT}" fi fi echo "; Memory limit for PHP scripts. memory_limit = ${MEMORY_LIMIT}" > "/etc/php5/conf.d/memory-limit.ini"
Ajoutez les paramètres de configuration PHP adaptés à vTiger:
echo "; vTiger PHP configuration. max_execution_time = 600 output_buffering = On post_max_size = 18M upload_max_filesize = 10M allow_call_time_pass_reference = On suhosin.memory_limit = 1048576000 suhosin.request.max_value_length = 1000000 ; Unsecure vtiger recommendations. ; display_errors = On ; error_reporting = E_WARNING & ~E_NOTICE & ~E_DEPRECATED ; log_errors = Off" > "/etc/php5/conf.d/vtiger.ini"Redémarrez votre serveur HTTP :
command test -x "/etc/init.d/lighttpd" && /etc/init.d/lighttpd force-reload command test -x "/etc/init.d/apache2" && /etc/init.d/apache2 force-reload
Obtenez l'URL de la dernière version de l'application :
SOURCE_URL="$(command wget --quiet --output-document=- "http://www.vtiger.com/" \ | command grep "Download Source" \ | command sed -e 's/.*href="\(.*\)">.*/\1/g')"
Téléchargez les sources de l'application :
command wget --no-check-certificate "${SOURCE_URL}" \ --output-document="/tmp/vtigercrm.tar.gz"
Décompressez l'archive obtenue :
command tar --directory="/tmp" -xzf "/tmp/vtigercrm.tar.gz"
Placez le dossier obtenu à l'emplacement final :
command mkdir --parent "/var/lib/vtigercrm" command mv "/tmp/vtigercrm" "/var/lib/vtigercrm/${DOMAIN}"
Supprimez l'archive téléchargée :
command rm "/tmp/vtigercrm.tar.gz"
Corrigez les permissions par défaut des sources de l'application :
command chown -R root:root "/var/lib/vtigercrm/${DOMAIN}" command chmod -R go-w "/var/lib/vtigercrm/${DOMAIN}" WRITEABLE_FILES="config.inc.php install.php install tabdata.php parent_tabdata.php storage user_privileges cron/modules test/vtlib test/vtlib/HTML test/wordtemplatedownload test/product test/user test/contact test/logo backup Smarty/templates/modules cache cache/images cache/import Smarty/cache Smarty/templates_c logs" for FILE in ${WRITEABLE_FILES}; do command chown www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/${FILE}" done command chown -R www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/modules" command chown www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/include/js" command chown www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/include/language"
Mettez en place le fichier .htaccess :
command mv "/var/lib/vtigercrm/${DOMAIN}/htaccess.txt" "/var/lib/vtigercrm/${DOMAIN}/.htaccess"
Création de la base de données
Créez la base de données :
if [ "${MYSQL_HOST}" = "localhost" ]; then MYSQL_PARAMS=$(command mysql-tools create-domain-db "${DOMAIN}") else command echo "Saisissez le mot de passe de l'utilisateur root MySQL :" command read PASSWORD MYSQL_PARAMS=$(command ssh "root@${MYSQL_HOST}" "command mysql-tools create-domain-db '${DOMAIN}' '$(command cat /etc/mailname)' '${PASSWORD}'") fi
Récupérez les paramètres de la nouvelle base de données, et notez les précieusement, vous les utiliserez durant la procédure de configuration de l'application :
echo "${MYSQL_PARAMS}"
Mise en place de l'hôte virtuel
Créez la configuration du serveur HTTP pour votre domaine :
if [ -x "/usr/bin/a2tools" ]; then command a2tools add-vhost "${DOMAIN}" "/var/lib/vtigercrm/${DOMAIN}/" "Options" fi if [ -x "/usr/bin/lighty-tools" ]; then command lighty-tools add-vhost "${DOMAIN}" "/var/lib/vtigercrm/${DOMAIN}/" fi
Important : les commandes ci-dessus ne mettent pas en place un hôte HTTPS. Je vous conseille de les adapter afin que votre CRM ne soit visible que sur une connexion HTTPS.
Votre installation de vTiger devrait maintenant être disponible sur le nom de domaine que vous avez spécifié.
Configuration
Pour configurer l'application, visitez l'adresse fournie par la commande :
echo "http://${DOMAIN}/install.php"
Important : lors des vérification de "pré-installation", vous constaterez probablement que je ne respecte pas les paramètres recommandés pour vTiger. Je trouve que ces recommandations posent un risque du point de vue de la sécurité, et je les ai donc ignoré. Libre à vous de mettre à jour le fichier /etc/php5/conf.d/vtiger.ini pour intégrer ces recommandations.
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...
Sécurisation de l'installation
Une fois la configuration terminée, nous allons faire un peu de ménage et supprimer les fichiers inutiles:
command rm -r "/var/lib/vtigercrm/${DOMAIN}/install" command rm "/var/lib/vtigercrm/${DOMAIN}/install.php" command rm /var/lib/vtigercrm/${DOMAIN}/*.txt
Nous protégeons le fichier de configuration:
command chown root:root "/var/lib/vtigercrm/${DOMAIN}/config.inc.php"
vTiger en Français par défaut
Si l'anglais n'est pas votre langue native (ce qui est hautement probable si vous lisez cette page), utilisez cette commande pour faire du français la langue par défaut :
command sed -i -e "s/^\(.*default_language.*'\).*\('.*\)/\1fr_fr\2/" \ "/var/lib/vtigercrm/${DOMAIN}/config.inc.php"
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
Une fois Backup Manager installé, vous pouvez configurer la sauvegarde des fichiers de vTiger avec les commandes suivantes:
command update-bm-folders add /var/lib/vtigercrm/${DOMAIN}
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.
Mise à jour
Renseignez le nom de domaine ou est disponible l'application que vous souhaitez mettre à jour :
DOMAIN="crm.domaine-exemple.fr"
Obtenez l'URL de la dernière version de l'application :
SOURCE_URL="$(command wget --quiet --output-document=- "http://www.vtiger.com/" \ | command grep "Download Source" \ | command sed -e 's/.*href="\(.*\)">.*/\1/g')"
Téléchargez les sources de l'application :
command wget --no-check-certificate "${SOURCE_URL}" \ --output-document="/tmp/vtigercrm.tar.gz"
Décompressez l'archive obtenue :
command tar --directory="/tmp" -xzf "/tmp/vtigercrm.tar.gz"
Mettez à jour les sources de votre application :
command rm "/tmp/vtigercrm/config.inc.php" if [ -d "/var/lib/vtigercrm/${DOMAIN}" ]; then command cp -r "/tmp/vtigercrm/"* "/var/lib/vtigercrm/${DOMAIN}/" fi
Supprimez l'archive téléchargée :
command rm -r "/tmp/vtigercrm" command rm "/tmp/vtigercrm.tar.gz"
Corrigez les permissions par défaut des sources de l'application :
command chown -R root:root "/var/lib/vtigercrm/${DOMAIN}" command chmod -R go-w "/var/lib/vtigercrm/${DOMAIN}" WRITEABLE_FILES="config.inc.php install.php install tabdata.php parent_tabdata.php storage user_privileges cron/modules test/vtlib test/vtlib/HTML test/wordtemplatedownload test/product test/user test/contact test/logo backup Smarty/templates/modules cache cache/images cache/import Smarty/cache Smarty/templates_c logs" for FILE in ${WRITEABLE_FILES}; do command chown www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/${FILE}" done command chown -R www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/modules" command chown www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/include/js" command chown www-data:www-data "/var/lib/vtigercrm/${DOMAIN}/include/language"
Mettez à jour le fichier .htaccess :
command mv "/var/lib/vtigercrm/${DOMAIN}/htaccess.txt" "/var/lib/vtigercrm/${DOMAIN}/.htaccess"
Migration vers la nouvelle version
Pour effectuer la migration de l'application vers sa nouvelle version, visitez l'adresse fournie par la commande :
echo "http://${DOMAIN}/install.php"
Important : lors des vérification de "pré-installation", vous constaterez probablement que je ne respecte pas les paramètres recommandés pour vTiger. Je trouve que ces recommandations posent un risque du point de vue de la sécurité, et je les ai donc ignoré. Libre à vous de mettre à jour le fichier /etc/php5/conf.d/vtiger.ini pour intégrer ces recommandations.
Sécurisation de l'installation
Une fois la migration terminée, nous allons faire un peu de ménage et supprimer les fichiers inutiles:
command rm -r "/var/lib/vtigercrm/${DOMAIN}/install" command rm "/var/lib/vtigercrm/${DOMAIN}/install.php" command rm /var/lib/vtigercrm/${DOMAIN}/*.txt
Nous protégeons le fichier de configuration:
command chown root:root "/var/lib/vtigercrm/${DOMAIN}/config.inc.php"
Remerciements
- Merci aux développeurs de vTiger.
Je confirme, très bon tuto
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 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