« Installation CiviCRM sur serveur Debian » : différence entre les versions
(7 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 286 : | Ligne 286 : | ||
===Si vous utilisez Civioffice (defaut)=== | ===Si vous utilisez Civioffice (defaut)=== | ||
* Installez et parametrez [[#Param%C3%A9trage_de_CiviOffice | CiviOffice]] | * Installez et parametrez [[#Param%C3%A9trage_de_CiviOffice | 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=== | ===Si vous n'utilisez pas CiviOffice=== | ||
Ligne 338 : | 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 | |||
[[File:form_builder.png|500px]] | |||
*Aller dans SearchForm qui liste les formulaires de recherche ; Vous devez trouver des liens vers plusieurs pages | |||
** civicrm/donneurs_annules | |||
** civicrm/donneurs_DCD | |||
** civicrm/donneurs_vivants | |||
** civicrm/inventaires | |||
** civicrm/codesbarres | |||
** civicrm/tbleauBordCorps2 | |||
** civicrm/tous_contacts | |||
Si certains manquent, les importer depuis les fichiers requetes Searchkit/liste_menus | |||
(suivre [[#Cr%C3%A9ation/import_des_requ%C3%AAtes_SearchKit | la procédure d'import]]) | |||
=Paramétrage des purges de la base de données= | =Paramétrage des purges de la base de données= |
Dernière version du 16 septembre 2024 à 12:25
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
- La documentation officielle est : https://docs.civicrm.org/sysadmin/en/latest/upgrade/wordpress/
- Récupérer les fichiers d'installation pour Wordpress : sur https://civicrm.org/fr/telecharger
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
- Rechargez la page des extensions et cliquez sur installer sur FrenchCodesPostaux qui est apparue
- installer manuellement les paquets suivants :
- Related tokens (https://civicrm.org/extensions/related-tokens): pour récupérer les informations des personnes référentes ;
- More Greetings Options (https://civicrm.org/extensions/more-greetings-personalised-strings-all-contacts): pour créer des civilités complexes par exemple extraire la civilité depuis le genre
- Dompdf-fonts (https://github.com/eileenmcnaughton/dompdf-fonts): pour imprimer correctement les docs html en pdf
- Civirules (https://civicrm.org/fr/extensions/civirules): pour parametrer les purges
- CiviCRM Configuration Loader (https://docs.civicrm.org/configitems/en/latest/): pour exporter/importer configurations
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 :
- Les permissions dans CiviCRM sont gérées par le statut dans Wordpress:
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%';
- 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 ; Vous devez trouver des liens vers plusieurs pages
- civicrm/donneurs_annules
- civicrm/donneurs_DCD
- civicrm/donneurs_vivants
- civicrm/inventaires
- civicrm/codesbarres
- civicrm/tbleauBordCorps2
- civicrm/tous_contacts
Si certains manquent, les importer depuis les fichiers requetes Searchkit/liste_menus (suivre la procédure d'import)
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
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
- La documentation officielle est : https://docs.civicrm.org/sysadmin/en/latest/upgrade/wordpress/
- Récuperer les fichiers d'installation pour wordpress : sur https://civicrm.org/fr/telecharger
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
- 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
- Pour localiser php.ini dans un terminal (https://codup.co/where-is-php-ini-in-wordpress-how-to-locate-and-edit-php-ini/#1-3), taper :
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
- Pour localiser php.ini dans un terminal (https://codup.co/where-is-php-ini-in-wordpress-how-to-locate-and-edit-php-ini/#1-3), taper :
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'