« Installation CiviCRM sur serveur Debian » : différence entre les versions
Ligne 287 : | Ligne 287 : | ||
==Installation de l'API et création des champs personnalisé relatifs aux personnels des centres de don du corps (inutile pour les paquets d'installation distribués à partir du 1/1/2024)== | ==Installation de l'API et création des champs personnalisé relatifs aux personnels des centres de don du corps (inutile pour les paquets d'installation distribués à partir du 1/1/2024)== | ||
Les paquets d'installation fournis après le 1/1/24 contiennent déja API et Champs relatifs aux personnels. | Les paquets d'installation fournis après le 1/1/24 contiennent déja API et Champs relatifs aux personnels; Dans ce cas passez cette étape. | ||
* Installation de l'API de purge dans /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/ | * Installation de l'API de purge dans /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/ | ||
<blockquote style="background-color: darkgrey; border: solid thin grey;color: black;">cp apiv4_PurgeCDC-1.0.php /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/</blockquote> | <blockquote style="background-color: darkgrey; border: solid thin grey;color: black;">cp apiv4_PurgeCDC-1.0.php /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/</blockquote> |
Version du 5 janvier 2024 à 07:47
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
Testé avec PHP 7.4.33 (cli) (built: Nov 8 2022 11:40:37) ( NTS )
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
;extension=intl
est bien décommentée dans /etc/php/VERSION/apache2/php.ini ET /etc/php/VERSION/cli/php.ini
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
- 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)
- 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
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:
Créer 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%2Fcontact%2Fsearch&force=1&qfKey=0
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
Dans PhpMyadmin :
- sélectionner la base civicrm --> exporter en un seul fichier sql
Ou bien en lignes de commande
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
- Supprimer la fonction associée à cette table (dans procédures stockées)
- 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
Paramétrage des courriers
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%';
- Pour que le système utilise correctement les pdf (sinon il remplace les cases à cocher par des "?" à l'impression
- Allez dans Administrer > Console d'administration > 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)
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
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
Installation de l'API et création des champs personnalisé relatifs aux personnels des centres de don du corps (inutile pour les paquets d'installation distribués à partir du 1/1/2024)
Les paquets d'installation fournis après le 1/1/24 contiennent déja API et Champs relatifs aux personnels; Dans ce cas passez cette étape.
- Installation de l'API de purge dans /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/
cp apiv4_PurgeCDC-1.0.php /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/
- Création des champs liés aux personnels
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:
cp apiv4_Create_dates_Personnels.php /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/
Exécutez cette API pour créer les champs liés aux personnels:
cd /var/www/html/ddctest/wp-content/plugins/civicrm/civicrm/api/
php apiv4_Create_dates_Personnels.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 Inforamations Personnels apparait en bas de liste. Il comporte deux champs de date.
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'