« Installation CiviCRM sur serveur Debian » : différence entre les versions

De wiki
Aller à la navigation Aller à la recherche
Ligne 339 : Ligne 339 :
SET msg_text = REPLACE(msg_text, 'B95FFC', '009DE0')<br/>
SET msg_text = REPLACE(msg_text, 'B95FFC', '009DE0')<br/>
WHERE msg_text LIKE '%B95FFC%';</blockquote>
WHERE msg_text LIKE '%B95FFC%';</blockquote>
==Vérification des requetes utilisées par les menus==
*Plusieurs requetes créent des listes de donneurs; certaines sont assorties de formulaire permettant des recherche. Ces requestes sont appelées direstement par les menus, notamment dans le menu recherche.
*Elles sont normalement importées avec la base mais les formulaires ne le sont pas toujours. Il suffit de réimporter les requetes.
*Pour lister les formulaires : Administrer > Données et écrans > Form Builder
*Aller dans SearchForm qui liste les formulaires de recherche


=Paramétrage des purges de la base de données=
=Paramétrage des purges de la base de données=

Version du 16 septembre 2024 à 12:06

Prérequis

  • Debian 11
  • Apache

Ne pas utiliser les paquets Debian Wordpress ni CiviCRM qui organisent les fichiers différemment de ce qui est attendu dans la doc

Installation serveur LAMP

PHP

  • Installer PHP

apt-get install php composer libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-xml-util php-mysql php-bcmath php-intl php-imagick unzip wget curl git -y

  • Vérifier que la ligne suivante est bien décommentée dans /etc/php/VERSION/apache2/php.ini ET /etc/php/VERSION/cli/php.ini

;extension=intl

  • Note sur les versions de PHP
    • certaines extensions (Related tokens 0.4.0) ne sont pas compatibles avec PHP8 : un appel à ces tokens, notamment pour générer un document comportant les coordonnées des personnes de confiance induit une erreur
    • il est donc préférable d'utiliser PHP7.4
    • en revanche certaines pages de civicrm 5.77.0 (notamment Administrer > Console d'administration > Paramètres Système > Divers) ne s'affichent pas (erreur critique en PHP 7.4)
    • en attendant une mise à jour des extensions il est donc conseillé
      • d'installer plusieurs versions de php (cf.infra)
      • une fois l'installation terminée, sous php 8 parametrer le chemin des polices
      • rebasculer en php 7.4 pour l'exploitation

Pour installer plusieurs versions de php

  • Il faut ajouter le repository SURY PHP

sudo apt install -y apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

  • Faire un update du systeme

sudo apt update

  • Installer les versions necessaires de PHP

sudo apt install -y php8.3
sudo apt install -y php8.2
sudo apt install -y php7.4
....

  • Pour passer d'une version à l'autre (ici 7.4)

sudo update-alternatives --set php /usr/bin/php7.4

  • Pour vérifier la version de PHP

php -v

Mariadb

  • Installer Mariadb (au moins v. 10.5 sinon certaines requetes ne marchent pas) et phpmyadmin

apt-get install mariadb-server mariadb-client phpmyadmin -y

  • Démarrer Mariadb

systemctl start mariadb

  • Faire démarrer Mariadb à chaque reboot

systemctl enable mariadb

  • Sécuriser madiadb

mysql_secure_installation

Entrez les informations : mdp root Mariadb, suppression utilisateurs anonymes, désactiver accès root distants, supprimer base test :

Enter current password for root (enter for none):
Change the root password? [Y/n] Y
New password: <MARIADBPASSWD>
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

  • Mettre en place la timezone puis redémarrer Mariadb

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
systemctl restart mariadb

Installation Wordpress

Création de la base de données

  • Créer un ficher qui va générer une base de donnée wordpress avec un mot de passe <WORDPRESSPASSWD>

nano ~/wp.sql
CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY '<WORDPRESSPASSWD>';
FLUSH PRIVILEGES;

  • Créer la base de données

cat ~/wp.sql | mysql --defaults-extra-file=/etc/mysql/debian.cnf

Télécharger Wordpress et installer le site ddctest

cd /var/www/html
wget https://wordpress.org/latest.zip
unzip latest.zip
mv wordpress ddctest

Attention pas de caractères spéciaux dans le nom du site !

Éditer le ficher de configuration utilisé par Wordpress lors de l'installation

cd ddctest
cp wp-config-sample.php wp-config.php
nano wp-config.php

Change the following lines that match your database settings:

/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** MySQL database username */
define( 'DB_USER', 'wordpress' );
/** MySQL database password */
define( 'DB_PASSWORD', '<WORDPRESSPASSWD>' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
define('FS_METHOD', 'direct');

Changer les permissions

chown -R www-data:www-data /var/www/html/ddctest

Créer le site

cd /etc/apache2/sites-available
cp 000-default.conf ddctest.conf
nano ddctest.conf
change : DocumentRoot /var/www/html/ddctest
change : ServerAdmin mailadmin@domaine.fr

Désactiver l'hôte virtuel par défaut, activer le site et relancer le serveur web

a2dissite 000-default
a2ensite ddctest
service apache2 reload

Installation Wordpress

dans un navigateur: http://ddc_test/

Entrer:

  • la langue
  • titre du site : ddctest
  • identifiant : <USERWORDPRESS>
  • password : <MDPUSERWORDPRESS>

Installation CiviCRM

Creer base de données CiviCRM et donner tous les droits à l'utilisateur civicrm

mysql -uroot -p -e "CREATE DATABASE civicrm DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci"
mysql -uroot -p -e "grant all on civicrm.* to 'civicrm'@'localhost' identified by '<MDPCIVICRM>'"

Installer les fichiers CiviCRM

A partir des fichiers disponibles sur le site civiCRM

cd /var/www/html/ddctest/wp-content/plugins
unzip civicrm-X.XX.X-wordpress.zip

  • Récupérer les fichiers de traduction correspondant à cette version (à faire avant de lancer l'installation)

cd /var/www/html/ddctest/wp-content/plugins
mkdir test
tar xvzf civicrm-X.XX.X-l10n.tar.gz

  • Cela crée ../cvcrm/sql et cvcrm/l10n
    • naviguer dans ces deux repertoires pour ne garder que les fichiers ayant fr_RF ou FR-fr (2 dans sql et un dans l10n)
    • copier l10n/ dans /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/
    • copier les deux fichiers de sql dans /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/sql/

A partir d'une archive incluant tous les fichiers

  • récupérer civicrm-X.XX.X-wordpress_FR_API_ext.zip : cette archive comporte les fichiers CIVICRM, la régionalisation fr et les extensions nécessaires

cd /var/www/html/ddctest/wp-content/plugins
unzip civicrm-X.XX.X-wordpress_FR_API_ext.zip

Changer les permissions de CiviCRM

cd /var/www/html/ddctest/wp-content/plugins/
chown -R www-data:www-data civicrm

Lancer l'installeur CiviCRM

  • connectez vous sur votre site Wordpress avec des permissions admin (https://ddctest/wp-admin/)
    • identifiant : <USERWORDPRESS>
    • password : <MDPUSERWORDPRESS>
  • allez dans les extensions et activez CiviCRM pour lancer l'installation

Langue: francais
modifier la base civicrm : mysql://civicrm:<MDPCIVICRM>@localhost/civicrm
lancer l'installation

Si le site Wordpress devient inaccessible après installation de CiviCRM

Désactivez les plugins via la base de données

Connectez-vous sur la base Wordpress via Phpmyadmin
Dans la table wp_options, colonne option_name, cherchez la ligne active plugins
changer la valeur pour a:0:{}
Rechargez la page admin de Wordpress

Installation extensions de CiviCRM

Installation depuis un paquet préparé pour le don du corps

les extensions sont comprises dans l'archives ; passez directement au paramétrage de CiviOffice

Installation depuis des paquets séparés

  • Dans CiviCRM > administration > paramètres système > gérer extensions
  • Verifier que les extensions suivantes sont installées :
    • Contact Layout Editor(personalisation des écrans de saisie) à chercher dans onglet ajouter
    • Contribution cancel actions (defaut)
    • Documents (gestion documents)
    • Fuzion Tokens (gère les jetons pour insertions automatiques dans les courriers)
    • CiviOffice (utilise des modèles word pour la correspondance)
    • civi_ddc (outils pour la gstion du don de corps - en développement)
  • Installer manuellement French Codes postaux (complétion auto des adresses via API La Poste)
    • Récupérer extension depuis Download the extension package https://github.com/allinappli/frenchCodePost-civicrm (inutilise si vous avez utilisé l'archive d'installation incuant les extensions; passez alors à l'étape suivante)
    • Utiliser une version >=1.1 les antérieures ne marchent pas

cp frenchcodepostaux-X.X.zip /var/www/html/ddctest/wp-content/uploads/civicrm/ext/
cd /var/www/html/ddctest/wp-content/uploads/civicrm/ext/
unzip frenchcodepostaux-X.X.zip
chown -R www-data:www-data frenchcodepostaux-X.X

Dans les deux cas : inactivation de smarty >=4

L'extension CiviDocuments n'est pas compatible (v.1.25) avec Smarty 4 ou Smarty 5 utilisé pour gérer les tokens. Editez le fichier /var/www/html/ddctest/wp-content/uploads/civicrm/civicrm.settings.php et commentez les lignes suivantes :

if (!defined('CIVICRM_SMARTY_AUTOLOAD_PATH') && getenv('CIVICRM_SMARTY_AUTOLOAD_PATH') === FALSE) {

// enable by default for dev & demo sites for now - will soon enable by default for all new installs.
if (strpos(CIVICRM_UF_BASEURL, 'localhost') !== FALSE || strpos(CIVICRM_UF_BASEURL, 'demo.civicrm.org') !== FALSE) {
if (is_dir($civicrm_root . '/packages')) {
define('CIVICRM_SMARTY_AUTOLOAD_PATH', $civicrm_root . '/packages/smarty5/Smarty.php');
}
elseif (is_dir($civicrm_root . '/../civicrm-packages')) {
define('CIVICRM_SMARTY_AUTOLOAD_PATH', $civicrm_root . '/../civicrm-packages/smarty5/Smarty.php');
}
}

}

Paramétrage de CiviOffice

CiviOffice simplifie la gestion des modèles de document qui sont nativement gérés sous forme de messages html

  • Installer l'extension CiviOffice : cf. étape précédente
  • Installer unoconv : c'est un convertisseur qui génère des pdf à partir de documents word ; il a besoin de libre office qui s'installe en même temps que lui

apt-get update
apt-get install unoconv

  • Installer la police LibreBarcode39-Regular.ttf qui sera utile pour imprimer des codes barres. Elle est téléchargeable sur Google Fonts

cp LibreBarcode39-Regular.ttf /usr/local/share/fonts/
chmod 644 /usr/local/share/fonts/LibreBarcode39-Regular.ttf
fc-list | grep LibreBarcode39

La dernière commande vérifie que la police est bien disponible ; elle doit retourner son chemin.

  • Paramétrer CiviOffice

Comme administrateur allez dans CiviOffice > Settings

Paramétrez:le chemin de unoconv (attention le répertoire ou se situe le lock file doit pouvoir être modifié par www-data

Paramétrez aussi le répertoire local ou se situent les modèles ; il peut s'agir d'un volume samba monté sur cette machine et accessible par les gestionnaires afin qu'ils puissent les modifier

  • ATTENTION : cette extension utilise libre office mais ce dernier ne doit pas tourner lorsque unoconv est lancé sinon vous obtiendrer l'erreur suivante (il suffit de quitter Libreoffice pour la supprimer):

Modification de Tokens.php (pour récupérer la date de décès)Pas nécéssaire depuis 5.65.2

La date de décès n'est pas disponible sous forme de jeton à insérer dans les messages. Pour l'ajouter il faut :

  • editer wp-content/plugins/civicrm/civicrm/CRM/Contact/Tokens.php

nano wp-content/plugins/civicrm/civicrm/CRM/Contact/Tokens.php
ajoutez 'deceased_date’,
au dessous de 'birth_date',:
...
'birth_date',
'deceased_date',
'employer_id',
...

  • vider le cache Administrer > Paramètres système > Effacer les caches
  • vider le cache

rm -rf /var/www/html/ddctest/wp-content/uploads/civicrm/templates_c/*

Créer utilisateurs - Régler les permissions

  • Créer des utilisateurs dans Wordpress, par privilèges décroissants: administrateurs (tous les droits), auteurs, contributeurs
  • Les récupérer dans CiviCRM : administration > utilisateurs et permissions > synchroniser
    • crée un utilisateur CiviCRM par utilisateur Wordpress
  • Gérer les permissions
    • Les permissions dans CiviCRM sont gérées par le statut dans Wordpress:
      • admin ont tous les droits
      • auteurs : gestionnaires dans CiviCRM
      • contributeurs : visu sans modification dans CiviCRM
    • Les permissions sont réglées finement dans : civiCRM > administration > utilisateurs et permissions > permissions > Wordpress control access
    • Les permissions types sont :

Afficher une page d'accueil montrant la liste des donneurs

Une telle page est pratique pour avoir une vue synthétique ; elle peut par exemple être la cible d'un bouton sur la page d'accueil du site Wordpress YOURSITE/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Ftous_contacts

Programmer l'exécution des tâches périodiques (Sinon vous aurez une alerte système et ne pourrez envoyer des mails en masse

  • CiviCRM gère des taches périodiques avec une fréquence définie dans Administrer > Paramètres Systèmes > Travaux programmés
  • Ces tâches sont exécutées via une API, job.execute, qui utilise un utilisateur crontab (administrateur de wordpress) pour interagir avec CiviCRM via wp-cli, le langage de communication avec Wordpress.
  • Cette metatache programmée, job.execute, est elle même lancée par www-data via cron à une période choisie par l'utilisateur.

Pour plus d'infos : https://docs.civicrm.org/sysadmin/en/latest/setup/jobs/

Installer wp-cli

  • Créer un utilisateur cronuser dans Wordpress, avec les privilèges Admin
  • Installer le package wp-cli.phar dans /usr/local/bin/ et le renommer wp

sudo su
cd
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info (vérifie que tout est ok)
mv wp-cli.phar /usr/local/bin/wp
chmod ugo+x /usr/local/bin/wp

  • Tester le lancement manuel de l'API job.execute par l'utilisateur www-data et l'utilisateur cronuser de Wordpress

sudo -u www-data /usr/local/bin/wp --user=cronuser --url=http://SITE --path=/var/www/html/ddctest civicrm api job.execute auth=0

  • Remplacer :
    • SITE par l'adresse de votre site
    • /var/www/html/ddctest par le chemin ou sont situés les fichiers de votre site
  • Normalement les taches s’exécutent et sont listés dans les journaux accessibles dans Administrer > Paramètres Systèmes > Travaux programmés

Définir la périodicité d'exécution de job.execute par cron

Pour lancer job.execute toutes les 5 minutes

crontab -e -u www-data
ajouter cette ligne dans le cron de www-data
*/5 * * * * /usr/local/bin/wp --user=cronuser --url=http://ddc-test --path=/var/www/html/ddctest civicrm api job.execute auth=0

Remplacer /usr/local/bin/wp --user=cronuser --url=http://SITE --path=/var/www/html/ddctest civicrm api job.execute auth=0 Par la ligne testée plus haut (remplacer CHEMIN et SITE)

Définir les tâches périodiques à réaliser

  • Dans Administrer > Paramètres Systèmes > Travaux programmés
  • Choisir les taches à faire tourner automatiquement, par exemple :
    • CiviCRM update check (quotidienne),
    • Clean-up temporary Data and files (horaire),
    • Send Scheduled Mailings (Always, c'est à dire à chaque fois que job.execute est lancé)
  • Toutes les 5 minutes (délai d’exécution de job.execute par cron), job.execute les tâches programmées selon la périodicité définie ici
  • vous pouvez vérifier le bon déroulement des tâches programmées dans les Journaux accessibles dans Administrer > Paramètres Systèmes > Travaux programmés

Limiter les répertoires lisibles (Sinon alerte système périodique)

Pour gérer les permissions des fichiers de CiviCRM il est proposé d'activer .htaccess (cf. https://civicrm.org/advisory/civi-sa-2014-001-risk-information-disclosure)

nano /etc/apache2/apache2.conf

Naviguez dans le fichier jusqu’aux lignes suivantes :

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Changer :

AllowOverride None

Par :

AllowOverride All

Relancer Apache2

systemctl restart apache2

Migration base données civiCRM

Important : Les versions civiCRM des serveurs source et cible

  • DOIVENT ÊTRE IDENTIQUES (le format des bases change avec la version)
  • Avec les mêmes extensions

Sur le serveur source

mysqldump -u <civicrm_source_base_user> -p <civicrm_source_base> > <civicrm_sourcebase.sql>
avec :
<civicrm_source_base> : base à exporter
<civicrm_source_base_user> : utilisateur de la base à exporter
<civicrm_sourcebase.sql> : nom du fichier d'export

Sur le serveur cible

  • Wordpress > Extensions > CiviCRM : désactiver
  • Dans PhpMyadmin :
    • Supprimer toutes les tables de la base civicrm
    • Importer la base sauvegardée à l'étape précédente
    • L'import peut se faire en ligne de commande pour ne pas être bloqué par les limites de taille de base par défaut de PhpMyadmin :

mysql -u civicrm -p (se connecter à mysql avec le nom d'utilisateur défini ) l'installation;
mysql> use civicrm; (pour travailler sur la base civicrm)
mysql> source sauvegarde_base_civicrm.sql
mysql> exit

  • Wordpress > Extensions > CiviCRM : activer
  • Dans le menu wordpress (bandeau de gauche) : Civicrm > Settings > Rebuild the CiviCRM menu
  • Dans le menu wordpress (bandeau de gauche) : Civicrm > Settings > Rebuild the CiviCRM database triggers

Migration des documents (pdf, notes) associés aux contacts

  • Ces documents ne sont pas dans la base de donnée qui ne contient que leur chemin
  • Ils sont dans /var/www/html/ddctest/wp-content/uploads/civicrm/custom/
  • Il est impératif de copier ces fichiers du serveur source vers le cible

Parametrage de DOMPDF

L'extension dompdf permet notamment l'impression de caractères spéciaux en pdf (sinon les cases à cocher sont remplacées par des "?" à l'impression. ATTENTION le parametrage de cette extension n'est possible qu'en en PHP8 à partir de 5.77.0:

  • Allez dans Administrer > Console d'administration > Paramètres Système > Divers (Restaurer, PDFs, limites, Journalisation, etc)
  • "Dossier des polices de DOMPDF" contient une entrée du type : /home/u530985180/public_html/14/wp-content/plugins/civicrm/civicrm/ext/dompdf-fonts-master/Managed/../fonts
  • La modifier pour pointer vers le chemin de votre installation (par ex /var/www/html/wordpress/wp-content/plugins/civicrm/civicrm/ext/dompdf-fonts-master/Managed/../fonts)
  • Vous pouvez ensuite repasser en php 7.4 (sinon civitokens ne fonctionnera pas)
  • Pour l'installation de plusieurs versions de PHP allez ici

Paramétrage des courriers

Si vous utilisez Civioffice (defaut)

  • Installez et parametrez CiviOffice
  • Éditez les modèles word (logos, signatures) ; si le repertoire des modèles est accessible au gestionnaire, il peut les éditer.

Si vous n'utilisez pas CiviOffice

L'import de base importe aussi les modèles de messages qui doivent être paramétrés pour s'adapter au nouveau site

  • Migration des images utilisées dans les courriers (signature.png, logo.png, anddc.jpg)
    • Ces images doivent être copiées lors d'une nouvelle installation dans /var/www/html/wordpress/wp-content/uploads/civicrm/persist/contribute/images
    • Elles doivent être lisibles par le groupe et les autres utilisateurs :

chmod go+r signature.png
chmod go+r logo.png
chmod go+r anddc.jpg

  • Modification des coordonnées de l'organisation par défaut. Ces infos seront reprises dans l'édition des courriers
    • Dans Administrer > Communication > Adresse de l'organisation et infos de contact, entrer les paramètres du centre de don
    • Utilisez Rue et Complement d'adresse1 pour entrer l'adresse
    • Complement d'adresse 2 correspond au directeur du centre de don : "Pr Truc, Directeur"
    • Complement d'adresse 3 correspond à la secrétaire du centre de don : "Mme Machin, Secrétaire"
    • Dans téléphone vous pouvez entrer plusieurs valeurs : "02 22 22 22 22 ou 02 44 44 44 44"
  • Modification des templates de documents avec l'interface.
    • Mailing > Modèles de messages affiche la liste des messages utilisables pour générer des documents (courriels ou pdf). Ces modèles html stockés dans la base contiennent des liens absolus vers les images incluses dans les messages qui doivent être modifiés :
    • pour le message à modifier, cliquer sur Modifier
    • dans l'éditeur cliquer sur source et remplacer les occurrences de "src="http://XX.XXX.XX.XX/wp-content/" par la valeur pour votre serveur (le plus pratique est de copier coller vers un éditeur externe pour les remplacements puis de copier-coller vers l'éditeur de CiviCrm
    • cliquez sur source pour voir le résultat html, puis enregistrer
    • pour vérifier le résultat, ouvrir un contact > Action > Imprimer fusionner le document > choir le modele > prévisualiser
  • OU BIEN Modification des templates de documents via une requête mysql. Par exemple, pour une installation sur https://serveurnew.fr/. Attention : faire une sauvegarde de votre base en cas de problème !

1 - Se connecter à mysql avec le nom d'utilisateur défini à l'installation:
mysql -u civicrm -p;
use civicrm; (pour travailler sur la base civicrm)

2 - Modifier les messages html:
UPDATE civicrm_msg_template
SET msg_html = REPLACE(msg_html, 'http://XX.XXX.XX.XX/wp-content/uploads/civicrm/persist/contribute/images/', 'https://serveurnew.fr/wp-content/uploads/civicrm/persist/contribute/images/')
WHERE msg_html LIKE '%http://XX.XXX.XX.XX/wp-content/uploads/civicrm/persist/contribute/images/%';

2 - Modifier les messages text s'il y a lieu:
UPDATE civicrm_msg_template
SET msg_text = REPLACE(msg_text, 'http://XX.XXX.XX.XX/wp-content/uploads/civicrm/persist/contribute/images/', 'https://serveurnew.fr/wp-content/uploads/civicrm/persist/contribute/images/')

WHERE msg_text LIKE '%http://XX.XXX.XX.XX/wp-content/uploads/civicrm/persist/contribute/images/%';

  • De la même façon vous pouvez changer les couleurs utilisées dans les documents en modififiant leurs codes hexa dans les templates.
    • Deux couleurs sont utilisées, pour les documents généraux et les cartes de donneur d'une part, et pour les cartes de référents d'autre part.
    • Ces couleurs sont à choisir selon la charte graphique de l'université. Vous pouvez utiliser https://www.rgbtohex.net/ pour convertir une valeur RGB en hexa
    • Par exemple si vous souhaitez remplacer la couleur #B95FFC par #009DE0

1 - Se connecter à mysql avec le nom d'utilisateur défini à l'installation:
mysql -u civicrm -p;
use civicrm; (pour travailler sur la base civicrm)

2 - Modifier les messages html:
UPDATE civicrm_msg_template
SET msg_html = REPLACE(msg_html, 'B95FFC', '009DE0')
WHERE msg_html LIKE '%B95FFC%';

2 - Modifier les messages text s'il y a lieu:
UPDATE civicrm_msg_template
SET msg_text = REPLACE(msg_text, 'B95FFC', '009DE0')

WHERE msg_text LIKE '%B95FFC%';

Vérification des requetes utilisées par les menus

  • Plusieurs requetes créent des listes de donneurs; certaines sont assorties de formulaire permettant des recherche. Ces requestes sont appelées direstement par les menus, notamment dans le menu recherche.
  • Elles sont normalement importées avec la base mais les formulaires ne le sont pas toujours. Il suffit de réimporter les requetes.
  • Pour lister les formulaires : Administrer > Données et écrans > Form Builder
  • Aller dans SearchForm qui liste les formulaires de recherche

Paramétrage des purges de la base de données

L'article 4 de l'arrêté du 22 juillet 2023 précise les conditions de conservation des données liées aux donneurs, aux proches et aux utilisateurs du centre de don du corps. La purge des données comporte plusieurs étapes :

  • Requêtes utilisant SearchKit pour rattacher les contacts à des groupes dynamiques (par exemple donneurs dont les opérations funéraires sont achevées depuis plus de 5 ans, Dons annulés...)
  • Purge des contacts de chacun des groupes en appliquant des règles différentes, définies par l'arrêté. Cette purge est réalisée par une API (apiv4_PurgeCDC-X.X.php

Mise à jour de votre version de CiviCRM

Utilisez un paquet fourni incluant les extensions et les API >= civicrm-5.68.1-wordpress_FR_API_ext

Installation de cv

cv est une interface en ligne de commande pour interragir avec CiviCRM. Son installation est indispensable à utilisation des API

  • vérifiez que cv n'est pas installé en tapant cv dans un terminal
  • Si cv n'est pas installé, récupérez cv.phar
  • Installez le dans un répertoire inclut dans $PATH, par exemple

sudo mv cv.phar /usr/local/bin/cv
sudo chmod +x /usr/local/bin/cv

  • Si vous tapez cv, une aide va s'afficher

Création des champs personnalisés et des menus (inutile pour les bases distribués à partir du 1/1/2024)

La gestion des personnels de centres impose l'enregistrement de leurs dates d'arrivée et de départ, les données les concernant étant purgées 5 ans apres leur départ. Ces champs n'avaient initialement pas été prévus. Pour les créer:

cd /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/
php apiv4_Create_dates_Personnels_et_MenusPurge.php

Pour vérifier la création des champs, allez dans Administrer > Personnaliser les données et écrans > Champs personnalisés.

Le groupe de champs Informations Personnels apparait en bas de liste. Il comporte deux champs de date.

Création/import des requêtes SearchKit

Vous devez importer les requêtes SearchKit nécessaires aux purges. Verifiez qu'elles ont bien été importées ; si ce n'est pas le cas faites le manuellement (Si elles existent déjà, elles seront mises à jour).

  • Ouvrez SearchKit (Recherchez > SearchKit)

  • La liste des Requêtes s'ouvre ; cliquez sur Import

  • une fenêtre s'affiche afin que vous y copiez le code de la requête ; cliquez ensuite sur Import.

  • Les requêtes suivantes doivent être importées:
    • Anonymisés par la purge
    • Anonymisés sans protocole
    • Demandeurs d'informations plus d'un an
    • Donneurs > 120 ans
    • Donneurs annulés
    • Donneurs DC > un an et refus
    • Donneurs dont op funéraires > 1 an
    • Opérations funéraires de plus de 5 ans
    • Personnels partis depuis plus de 5 ans
    • Proches dont donneur DC >1 an et refuses
    • Proches sans relation
  • Ces requêtes apparaissent dans la liste et chacune est liée à un groupe dynamique

Définir le chemin du fichier de log

Éditer /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/ext/civi_ddc/api/v3/Contact/Purge.php

Pour modifier le chemin des logs des purges

$logfile = "/Users/destri_c/civi_ddc_logs/civicrm_ddc29_purge.log";

Lancer les purges manuellement

ATTENTION, CETTE OPÉRATION EST IRRÉVERSIBLE. IL EST PRÉFERABLE DE FAIRE UNE SAUVEGARDE DE LA BASE DE DONNÉES PRÉALABLE.

cd /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/
php apiv4_PurgeCDC-1.0.php

Les listes de purges sont vidées et les contacts sont supprimés ou leur identité est modifiée pour Anonymisé ANONYMISE

Automatiser les purges

Un tache Call Contact.Purge est crée dans : Administrer > Paramètres Système > Tache programmées Elle est désactivée. Elle lance la purge automatiquement chaque jour Pour l'activer, allez sur plus > Activer

Mises à jour

Avant mise à jour

  • Dans Worpress desactivez l'extension CiviCRM
  • Sauvegarder
    • Site
    • Base de données
    • Ne pas oublier : /var/www/html/ddctest/wp-content/uploads/civicrm/custom/
    • Le répertoire extension qui devra être restauré en fin d'installation

cp /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/ext/ Backup_loin_du_site_ext_bkp

  • pour les installations récentes, le fichier civicrm.settings.php contient une ligne pour définir la variable php `auto_detect_line_endings`. Il est obsolète et la ligne doit être supprimée du fichier.

nano /var/www/html/ddctest/wp-content/uploads/civicrm/civicrm.settings.php

Recherchez auto_detect_line_endings et commentez les lignes

// force PHP to auto-detect Mac line endings
//if (version_compare(PHP_VERSION, '8.1') < 0) {
// ini_set('auto_detect_line_endings', '1');
//}

  • Dans CiviCRM, nettoyez la base et les caches :

Effacer les anciens fichiers

Effacer fichiers existants pour civicrm et son cache

rm -rf /var/www/html/ddctest/wp-content/plugins/civicrm
rm -rf /var/www/html/ddctest/wp-content/uploads/civicrm/templates_c/*

ATTENTION: ne pas effacer : /var/www/html/ddctest/wp-content/uploads/civicrm/custom qui contient les document liés aux contacts

Installer les nouveaux fichiers (idem installation)

A partir des fichiers disponibles sur le site civicrm

cd /var/www/html/ddctest/wp-content/plugins
unzip civicrm-X.XX.X-wordpress.zip

  • Récupérer les fichiers de traduction correspondant à cette version (à faire avant de lancer l'installation)

cd /var/www/html/ddctest/wp-content/plugins
mkdir test
tar xvzf civicrm-X.XX.X-l10n.tar.gz

  • Cela crée ../cvcrm/sql et cvcrm/l10n
    • naviguer dans ces deux repertoires pour ne garder que les fichiers ayant fr_RF ou FR-fr (2 dans sql et un dans l10n)
    • copier l10n/ dans /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/
    • copier les deux fichiers de sql dans /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/sql/

A partir d'une archive incluant les fichiers de régionalisation, les API et les extensions

  • récupérer civicrm-X.XX.X-wordpress_FR_API_ext.zip : cette archive comporte les fichiers CIVICRM, la régionalisaiton fr, les extensions dans leur version récente

cd /var/www/html/ddctest/wp-content/plugins
unzip civicrm-X.XX.X-wordpress_FR_API_ext.zip

Changer les permissions de CiviCRM

cd /var/www/html/ddctest/wp-content/plugins/
chown -R www-data:www-data civicrm

Restaurer les extensions

A faire même si vous avez utilisé une archive incluant les extensions : la version ancienne est nécessaire à la mise à jour de CiviCRM ; les extensions se mettent à jour ensuite

cp Backup_loin_du_site_ext_bkp /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/ext/

Lancer l'installeur

  • Dans wordpress activer l'extension civicrm
  • aller sur : http://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/upgrade&reset=1
    • accepter la mise à niveau de votre base de donnée
    • les nouveaux fichiers sont installés et la base upgradée
    • recharger la page d'accueil de civicrm
  • si la maj de la base de donnée ne se lance pas, dans le badeau de gauche de wordpress, sous CiviCRM, cliquez sur Settings, puis Upgrade CiviCRM

Trucs et astuces

Ajouter une commande dans les menus pour afficher tous les contacts

  • Dans Administrer > Personnaliser les données et les écrans > Menus de navigation
  • Naviguer dans l'arborescence pour trouver l'emplacement auquel vous voulez ajouter le menu (par ex rechercher)
  • clic droit > Ajouter
  • Mettre le titre souhaité et dans l'URL : localhost:8888/wordpress/civicrm/contact/search?force=1&qfKey=0
  • Le menu est créé et point sur la page d'affichage des contacts.
  • l'adresse affichée dans la& barre de navigation peut etre utilisée pour atteindre cette page, par exemple depuis la page d'accueil Wordpress; au login l'utilisateur sera dirigé vers elle.

Réinitialiser la numérotation des contacts (ID)

Civicrm utilise un contact ID qui s'incrémente à chaque entrée. Si vous effacez définitivemnt tous les contacts d'une base, l'incrémentation va continuer. Pour éviter cela:

  • Supprimez tous les contacts:
    • Pour cela il faut supprimer tous les évenements, encaissements adhésions: faire une recherche et tous les selectionner pour suppression
    • Puis supprimer les contacts : afficher la liste, tout selectionner, action : supprimer définitivement
    • Supprimer ceux qui seraient en corbeille : recherche avancée, cocher chercher dans la corbeille, supprimer définitivement les résultats
    • Tous les contacts vont être supprimés sauf l'utilisateuur connecté et l'organisation principale
  • Allez dans PhpMyadmin, sur la table civicrm_contacts, onglet SQL, et lancer :

ALTER TABLE civicrm_contact AUTO_INCREMENT = 1

Changer le timeout de wordpress

Lors de l'import de grosses bases, WP interrompt le processus en raison d'un timeout trop court (30 sec par défaut). Ce parametre peut être changé dans php.ini

php -i | grep php.ini

  • Dans ce fichier, modifier la ligne :

max_execution_time=30;

en remplaçant 30 par 0 pour désactiver cette limite

  • Une fois l'import terminé, N'OUBLIEZ PAS DE REMETTRE LA VALEUR INITIALE

Changer les limites de memoire de phpMyAdmin

Lors de l'import de grosses bases, phpMyAdmin interrompt le processus en raison d'une taille trop importante. Ce parametre peut être changé dans php.ini

php -i | grep php.ini

  • Dans ce fichier modifier 3 entrées:
    • memory_limit
    • post_max_size
    • upload_max_filesize

Les valeurs entrées doivent être telles que memory_limit > post_max_size > upload_max_filesize

  • Relancez le serveur Apache

Problème de réglage de serveur de courrier sortant

Lors de l'import d'une base existante, elle contient des valeurs de serveur et notamment des infos sur les clés utilisées. Ces infos peuvent être discordantes avec celles contenues dans civicrm.settings.php. lorsque vous tentez de paramétrer le serveur de courrier vous avec l'erreur

Failed to find key by ID or tag (dQ4Av82utXEH28r_ebThCb2L8Y8)

Pour régler le problème :

  • dans PhpMyadmin, ouvrir la table civcrm_setting
  • rechercher l'entrée mailing_backend
  • effacer sa valeur
  • redéfinir les paramètres smtp dans les menus de CiviCrm : Administrer > Paramètres Système > Courrier sortant

Créer une archive zip sans fichiers cachés mac

Lors de la création d'archives zip avec l'utilitaire mac, des fichiers (.DS_Store) et répertoires (.__MACOSX/) cachés sont créés. Pour l'éviter:

  • utilisez zip au lei de l'utilisatire Mac, cela évitera la création des répertoires .__MACOSX/
  • excluez les fichiers .DS_Store :

zip -r civicrm-X.XX.X-wordpress_FR_API_ext.zip civicrm/ -x '**/.DS_Store'