Table des matières
Service v2.chapril.org
Introduction
La version 2 utilise le logiciel de gestion de contenu Spip. Spip peut être installé directement à partir du zip de téléchargement ou avec un paquet Debian. C'est cette dernière solution qui a été retenue : le paquet Debian de Bluster est à jour (version de Spip 3.2.4) et surtout l'empaqueteur a fait un gros travail pour proposer Spip dans sa version mutualisée : le même moteur de Spip peut être utilisé pour des sites indépendants.
La configuration d'un Spip mutualisé est plus complexe qu'un Spip normal (voir https://www.spip.net/fr_article3811.html) mais le paquet Debian mâche énormément le travail. La document fournit dans le paquet indique la marche à suivre : /usr/share/doc/spip/README.Debian
Installation
apt-get install spip
On commence par l'installation du paquet :
apt-get install spip
Et on installe aussi php-gd pour la gestion des vignettes :
apt-get install php-gd
Pour mémoire, nous avons eu quelques frissons lors d'une mise à jour de php7.0 à php7.3 (page blanche ou grise sous Spip), cela venait d'un module PHP manquant. Il faut vérifier la présence du module php-xml
notamment
Apache
Comme chaque site Spip a son propre nom de domaine, on ouvre le fichier /etc/apache2/conf-available/spip.conf
pour commenter la première ligne :
- /etc/apache2/conf-available/spip.conf
#Alias /spip /usr/share/spip
On copie le fichier d'exemple de configuration /usr/share/doc/spip/apache2.conf
dans le répertoire des sites d'Apache avec le nom qui va bien (ici v2.chapril.org
) :
cp /usr/share/doc/spip/apache2.conf /etc/apache2/sites-available/v2.chapril.org.conf
On ouvre ce fichier de configuration :
/etc/apache2/sites-available/v2.chapril.org.conf
On indique les bonnes valeurs pour ServerName
et ServerAdmin
et on remplace toutes les occurrences de default
dans /var/lib/spip/sites/default/
par le nom du domaine.
On change également la syntaxe des logs pour être en harmonie avec les autres sites du serveur :
ErrorLog ${APACHE_LOG_DIR}/v2.chapril.org/v2.chapril.org-error.log CustomLog ${APACHE_LOG_DIR}/v2.chapril.org/v2.chapril.org-access.log combined-proxy
Par rapport à l'exemple fourni, il manque une directive Require all granted
pour qu'Apache accède aux répertoires IMG/
et local/
.
On remplace cette partie de l'exemple :
<Directory /var/lib/spip/sites/v2.chapril.org/IMG> php_flag engine Off </Directory>
Par :
<Directory /var/lib/spip/sites/v2.chapril.org/IMG> php_flag engine Off Require all granted </Directory> <Directory /var/lib/spip/sites/v2.chapril.org/local> php_flag engine Off Require all granted </Directory>
Enfin, pour ne pas avoir à gérer un .htaccess qui devrait être placé dans /usr/share/spip
, on met les instructions de redirection et les instructions de réécriture d'URLs propres à Spip à la fin du fichier :
Redirect Permanent /services.html /-services-.html <Directory /usr/share/spip> #Extrait du .htaccess de Spip RewriteEngine On RewriteBase / ### # Si le fichier ou repertoire demande existe # ignorer toutes les regles qui suivent RewriteCond %{REQUEST_FILENAME} -f RewriteRule "." - [skip=100] RewriteCond %{REQUEST_FILENAME} -d RewriteRule "." - [skip=100] ### # URLs "propres", "propres2", "libres", "arbo" RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L] ### # Fichiers "standards" (si absents de la racine) # RewriteRule ^robots[.]txt$ spip.php?page=robots.txt [QSA,L] RewriteRule ^favicon[.]ico$ sites/chapril.exemole.fr/squelettes/css/favicon.ico </Directory>
Spip
Le paquet Debian comprend un script pour la création du site dans la configuration propre à Spip lui
spip_add_site v2.chapril.org
Bien noter le chemin du fichier /etc/spip/sites/v2.chapril.org.php
, c'est le fichier qui devra être modifié le jour de la mise en production pour que Spip sache traiter l'adresse www.chapril.org
en plus de v2.chapril.org
Activer le site sous Apache et recharger Apache
a2ensite v2.chapril.org systemctl reload apache2
À ce stade, l'adresse https://v2.chapril.org/ est opérationnelle avec le message de Spip « Ce site n’est pas encore configuré. Revenez plus tard… ». Normal, la base n'est pas créée.
Création de la base
Se connecter avec le root de mysql :
$ mysql -u root -p
Créer une base de données :
DB> CREATE DATABASE IF NOT EXISTS v2_chapril_org_db DEFAULT CHARACTER SET utf8 ;
Créer un utilisateur :
DB> CREATE USER 'v2_chapril_org-dbadmin'@'localhost' IDENTIFIED BY 'motdepasse'; DB> GRANT ALL PRIVILEGES ON v2_chapril_org_db.* TO 'v2_chapril_org-dbadmin'@'localhost' WITH GRANT OPTION;
Fin de l'installation
On peut maintenant aller sur https://v2.chapril.org/ecrire pour achever le processus d'installation de Spip. À noter que le nom d'utilisateur donné n'a pas d'importance dans ce cas car il sera écrasé par notre copie de la base de données. Il est cependant important de lancer ce processus pour que Spip génère le fichier de configuration qui va bien. Garder spip
comme préfixe des tables.
Transfert de la version de développement
Copier les squelettes dans /var/lib/spip/sites/v2.chapril.org/squelettes
(en profiter pour initaliser un dépôt git dans ce répertoire)
Copier le contenu de IMG
dans /var/lib/spip/sites/v2.chapril.org/IMG
Transférer la base (dans un fichier dump.sql
dans notre exemple)
mysql -u v2_chapril_org-dbadmin --default-character-set=utf8 --password='motdepasse' v2_chapril_org_db < dump.sql
Mise en production
Pour la mise en production vers www.chapril.org:
- Changer le nom du serveur dans
/etc/apache2/sites-available/v2.chapril.org.conf
- Le rajouter dans le tableau des sites dans
/etc/spip/sites/v2.chapril.org.php
- Changer le nom du site dans « Identité du site » dans l'administration de Spip