Installation de Civicrm avec Drupal

modifié le : 13 septembre 2022,
par Guillaume Chéramy
 

Il existe deux façon de mettre en place Civicrm (la troisième n'est plus maintenue), soit on intègre Civicrm avec Drupal, soit avec Joomla.

Vu que je ne connais pas Joomla allons-y avec Drupal.

On démarre sur une Debian Lenny fraichement installée.

Installation Apache2 + PHP + MySQL + Drush

Installation LAMP

On installe classiquement toute notre architecture LAMP avec une seule commande :

# apt-get install apache2 libapache2-mod-php5 php5-mysql php5-gd php5-mcrypt php-pear 
php5-cli php-soap php5-curl mysql-server mysql-client cronolog
# a2enmod rewrite

 

Création du répertoire dédié au site :

# mkdir -p /var/www/drupalcrm.domaine.tld/{etc,var/{log/apache,tmp/upload},scripts,tmp}

 

Installation de drush

# cd /opt
# wget http://ftp.drupal.org/files/projects/drush-6.x-3.1.tar.gz
# tar xvzf drush-6.x-3.1.tar.gz
# rm drush-6.x-3.1.tar.gz
# ln -s /opt/drush/drush /usr/bin

Installation de drupal

Voici en quelques commandes comment installer Drupal :

# cd /var/www/drupalcrm.domaine.tld/
# drush dl drupal
# mv drupal* www
# cp www/sites/default/default.settings.php www/sites/default/settings.php
# mkdir www/sites/default/files
# mkdir www/sites/all/{modules,themes}
# wget http://ftp.drupal.org/files/projects/fr-6.x-1.0.tar.gz -O www/fr-6.x-1.0.tar.gz
# tar xvzf www/fr-6.x-1.0.tar.gz -C www/
# rm www/fr-6.x-1.0.tar.gz

Créer la base de données

mysql> create database drupalcrm character set utf8 ;
mysql> grant all privileges on drupalcrm.* to 'drupal_youzer'@'localhost' identified by
'password' with grant option ;

Modifier la ligne de paramétrage de la base de données dans www/sites/default/settings.php :

$db_url = 'mysql://drupal_youzer:password@localhost/drupalcrm';

 

Configuration Apache et droits

Sur mon svn, je met à disposition des fichiers de conf  de vhost apache et un script de gestion des droits :

# cd /var/www/drupacrm.domaine.tld/
# rm -rf etc/ scripts/
# echo 't' | svn --username anonymous --password anonymous export 
https://subversion.cheramy.name/admin/drupalcrm/etc
# echo 't' | svn --username anonymous --password anonymous export 
https://subversion.cheramy.name/admin/drupalcrm/scripts
# sed -i 's/aremplacer/drupalcrm.domaine.tld/g' etc/* scripts/*

Au besoins adaptez les fichiers.

Le fichier etc/apache_80.conf est la configuration du vhost http

Le fichier etc/apache_443.conf est la configuration du vhost https. Attention à bien créer vos certificats (voir article sur les PKI)

Tout deux incluent le fichier etc/core.conf qui contient la configuration générique des vhosts.

Le script scripts/user_rights.sh permet de mettre à jour les droits sur les fichiers.

 

On exécute ce fichier et on crée les liens nécessaires pour activer les vhosts (je suppose ici que vous activez le vhost ssl) :

# ./scripts/user_rights.sh
# cd /etc/apache2/sites-available
# ln -s /var/www/drupalcrm.domaine.tld/etc/apache_80.conf 
xxx-drupalcrm.domaine.tld_80
# ln -s /var/www/drupalcrm.domaine.tld/etc/apache_443.conf 
yyy-drupalcrm.domaine.tld_443
# a2enmod ssl
# a2ensite xxx-drupalcrm.domaine.tld_80
# a2ensite yyy-drupalcrm.domaine.tld_443
# /etc/init.d/apache2 reload

 

On peut maintenant finaliser l'install de Drupal via l'interface Web : http://drupalcrm.domaine.tld/install.php

 

Ajout de modules

# cd /var/www/drupalcrm.domaine.tld/www
# drush dl admin
# drush dl backup_migrate
# drush dl securepages
# drush dl securepages_prevent_hijack
# drush dl token
# drush dl pathauto

 

Activer les modules (attention de bien avoir un vhost https pour les modules securepages) :

# drush en admin -y
# drush en backup_migrate -y
# drush en pathauto -y
# drush en securepages -y
# drush en securepages_prevent_hijack -y
# drush cc all

 

Attention si vous n'avez pas de résolution dns à mettre la ligne suivante dans votre fichier /etc/hosts :

127.0.0.1    drupalcrm.guidtz-intra.org

 

Installation de Civicrm

Installation des fichiers

# cd /var/www/drupalcrm.domaine.tld/www/sites/all/modules
# wget http://sourceforge.net/projects/civicrm/files/civicrm-stable/3.1.5/civicrm
-3.1.5-drupal.tar.gz/download
# wget http://sourceforge.net/projects/civicrm/files/civicrm-stable/3.1.5/civicrm
-3.1.5-l10n.tar.gz/download
# tar xvzf civicrm-3.1.5-drupal.tar.gz
# tar xvzf civicrm-3.1.5-l10n.tar.gz
# rm civicrm-3.1.5-drupal.tar.gz civicrm-3.1.5-l10n.tar.gz

 

Créer une base de données pour civicrm

mysql> create database civicrm character set utf8 ;
mysql> grant all privileges on civicrm.* to 'civi_youzer'@'localhost' identified by 
'password' with grant option ;

Faire un chmod +w sur le répertoire www/sites/default pour que l'installation puisse écrire le fichier de conf de civicrm ; ne pas oublier d'enlever ce droit après.

Finir l'installation via l'url

http://drupalcrm.domaine.tld/sites/all/modules/civicrm/install

Remplir tout les paramètres nécessaires et checker si tout est bon.

Une fois l'install faite on peut définir la page de garde par défaut de Drupal comme étant celle de Civicrm.

 

Rectification des droits :

# cd /var/www/drupalcrm.domaine.tld
# ./scripts/user_rights