Préparer un atelier SPIP
Un article de Wiki de Rhizomes.
L'objectif est de proposer une recette pour mettre en un rien de temps un SPIP de test en ligne rapidement.
Sur un serveur on disposera (liste de dépendances loin d'être exhaustive) des services suivants :
- un serveur web pour SPIP, ce qui implique :
- un interpréteur PHP, avec module mysql,
- un serveur MySQL.
- un serveur ftp pour mettre à jour les squelettes
Sur ce serveur, apache tourne dans cette recette avec les droits utilisateurs www-data, groupe www-data.
Sommaire |
Prérequis logiciels
Le tutorial est (en l'état) fait/testé avec :
- proftpd
- MySQL
- apache2
- SPIP
- net2ftp
Répertoires de travail
Notre apache a pour racine /var/www
SPIP sera installé dans /var/www/SpipRhizomes
Configuration des services
proftpd
Nous souhaitons ajouter un utilisateur anonyme (pas de mot de passe requis) "ftpRhizomes" à notre serveur ftp afin de pouvoir mettre à jour les squelettes SPIP. Nous mettons ici un utilisateur anonyme par facilité. Pour un accès authentifié, il me semble nécessaire soit de disposer d'un utilisateur ayant un compte, soit de jouer avec les .ftpaccess (peu documentés).
Nous ajoutons donc à la configuration de notre proftpd :
### Ajout pour Rhizomes ###
<Anonymous /var/www/SpipRhizomes/>
User www-data
Group www-data
# We want clients to be able to login with "ftpRhizomes"
UserAlias ftpRhizomes www-data
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
<Limit ALL>
DenyAll
</Limit>
<Limit DIRS STOR CWD MKD STOR READ RMD DELE>
AllowAll
</Limit>
</Anonymous>
MySQL
Il nous faut ajouter un utilisateur pour SPIP, et lui créer une base de donnée. On pourrait également réimporter les tables d'un atelier précédent.
En partant de 0, on ajoute un utilisateur, on crée la base associée, et on lui ajoute les droits avec ces requètes SQL :
USE mysql;
INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv)
VALUES ("localhost", "tempSpipRhizomes", old_password("tempSpipRhizomes"), "Y", "Y", "Y", "Y", "Y", "Y", "Y");
DROP DATABASE IF EXISTS tempSpipRhizomes;
CREATE DATABASE tempSpipRhizomes;
GRANT ALL PRIVILEGES ON tempSpipRhizomes TO 'tempSpipRhizomes'@'localhost';
Note. J'utilise ici la fonction old_password et non password parce que je n'ai pas migré tout mes mots de passe. Sur un mysql vierge, on doit pouvoir sans soucis utiliser password, tout simplement.
Une fois que l'on aura fini de travailler, on pourra récupérer tout le contenu de la base comme ceci :
mysqldump -u root -p tempSpipRhizomes > tempSpipRhizomes.sql
Pour le réinjecter dans un autre serveur (une fois l'utilisateur et la base créée) comme ça :
mysql -u root -p tempSpipRhizomes < tempSpipRhizomes.sql
apache
Il n'y a rien à faire sur le serveur apache, mis à part s'assurer que l'on a installé SPIP, et éventuellement net2ftp.
SPIP
On récupère la dernière version de SPIP, on la décompacte dans /var/www/SpipRhizomes.
On suit /var/www/SpipRhizomes/ecrire pour faire la configuration initiale.
Alternativement, on peut reprendre une archive d'un atelier passé, et réinjecter la base de donnée.
net2ftp
Si par hasard, une configuration réseau interdisait un accès direct à notre ftp, on peut penser à installer un client ftp fonctionnant via HTTP. De ce que j'ai testé (ou pas) :
- WebHTTP (j'arrive à lister les fichiers sur proftpd, mais pas à les télécharger, peut-être un soucis de RFC ?),
- egroupware-ftp (qui dépend de egroupware-core, et de pleins de choses, ça me semble vraiment comme prendre une enclume pour écraser une mouche pour ce qu'on souhaite faire),
- net2ftp a fonctionné sans soucis.
Quelle que soit l'option choisie, il suffit de mettre l'un de ces services en route sur notre apache (par exemple dans /var/www/net2ftp dans le cas de la dernière proposition).

