Installer SPIP 2 sur Debian
SPIP est un système de gestion de contenu écrit en PHP. C'est un logiciel libre principalement francophone (le code étant écris en langue française). Je ne l'apprécie pas trop, mais bon, j'ai eu l'occasion de m'en servir pour maintenir une application existante. Ce guide vous aide à installer SPIP sur Debian.
Pré-requis
En premier lieu, vous devez installer un serveur Apache 2 avec le support du PHP. Pour ce faire, vous pouvez suivre mon guide Installer et configurer Apache2 sur Debian.
Vous devez ensuite installer les extensions PHP et autres logiciels nécessaires:
/usr/bin/apt-get install unzip php5-mysql php5-gd imagemagick \
php-pear php5-dev libmagick9-dev imagemagick make apg
Nous mettons à jour PEAR :
/usr/bin/pear update-channels
/usr/bin/pear upgrade-all
Nous installons l'extension PHP Imagick (pour le traitement des images) :
/usr/bin/pecl install imagick
Et nous l'activons :
/bin/echo "extension=imagick.so" | /usr/bin/tee /etc/php5/conf.d/imagick.ini
N'oubliez pas de recharger la configuration de PHP :
/etc/init.d/apache2 force-reload
Installation
Renseignez le nom de votre instance de SPIP :
SPIP_NAME=www.monsite.com
Téléchargez la dernière version de SPIP :
/usr/bin/wget http://files.spip.org/spip/stable/spip.zip \
--output-document=/tmp/spip.zip
Décompressez le fichier ainsi obtenu :
/usr/bin/unzip -d /tmp /tmp/spip.zip
Et déplacez le vers l'emplacement d'installation :
/bin/mv /tmp/spip /opt/${SPIP_NAME}
Une fois ceci fait, nous mettons en place les répertoires devant contenir les fichiers de données de SPIP :
/bin/mkdir --parent /var/lib/spip/${SPIP_NAME}
/bin/mkdir --parent /var/cache/spip/${SPIP_NAME}
/bin/mv /opt/${SPIP_NAME}/tmp /var/cache/spip/${SPIP_NAME}
/bin/mv /opt/${SPIP_NAME}/local /var/cache/spip/${SPIP_NAME}/
/bin/mv /opt/${SPIP_NAME}/IMG /var/lib/spip/${SPIP_NAME}/
/bin/ln -s /var/lib/spip/${SPIP_NAME}/IMG /opt/${SPIP_NAME}/
/bin/ln -s /var/cache/spip/${SPIP_NAME}/tmp /opt/${SPIP_NAME}/
/bin/ln -s /var/cache/spip/${SPIP_NAME}/local /opt/${SPIP_NAME}/
/bin/chown -R www-data:www-data /var/lib/spip/${SPIP_NAME}
/bin/chown -R www-data:www-data /var/cache/spip/${SPIP_NAME}
Et nous rendons temporairement modifiable le répertoire de configuration de SPIP :
/bin/chown www-data:www-data /opt/${SPIP_NAME}/config/Nous créons aussi les dossiers nécessaires à l'installation de plugins :
/bin/mkdir --parent /var/lib/spip/${SPIP_NAME}/plugins/auto
/bin/mkdir --parent /var/lib/spip/${SPIP_NAME}/lib
/bin/ln -s /var/lib/spip/${SPIP_NAME}/plugins /opt/${SPIP_NAME}/
/bin/ln -s /var/lib/spip/${SPIP_NAME}/lib /opt/${SPIP_NAME}/
/bin/chown -R www-data:www-data /var/lib/spip/${SPIP_NAME}
Nous mettons en place le fichier .htaccess à la racine du site :
/bin/mv /opt/${SPIP_NAME}/htaccess.txt /opt/${SPIP_NAME}/.htaccess
Nous plaçons un lien symbolique dans le dossier du serveur HTTP :
/bin/ln -s /opt/${SPIP_NAME} /var/www/
Et lancez cette commande pour connaitre l'URL d'installation :
/bin/echo "http://localhost/${SPIP_NAME}/ecrire"
Connectez-vous maintenant à l'URL ainsi obtenue pour poursuivre l'installation. Pour obtenir une base de données MySQL, vous pouvez suivre mon guide
Remarque : Si lors de l'installation, vous ne savez que mettre comme préfixe de tables ou comme mot de passe d'administration, voici une commande qui vous permettra d'obtenir un préfixe aléatoire sécurisé ou un mot de passe adéquat :
/usr/bin/apg -q -a 0 -n 1 -M NCL
Une fois l'installation terminée, nous retirons les droits d'écriture au dossier config :
/bin/chown -R root:root /opt/${SPIP_NAME}/config
Configuration d'Apache
Nous configurons Apache pour servir ce site. Commencez par renseigner le nom de domaine ou vous souhaitez le voir :SITE_HOSTNAME=www.mon-domaine.fr
Nous téléchargeons et personnalisons le fichier de configuration adéquat :
SITE_PATH=/opt/${SPIP_NAME}
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-et-configurer-apache-2-sur-debian-4-0-etch/path-virtual-host-template \
--output-document=/etc/apache2/sites-available/${SITE_HOSTNAME}
/bin/sed -i -e "s/SITE_HOSTNAME/${SITE_HOSTNAME}/g" \
-e "s|SITE_PATH|${SITE_PATH}|g" \
-e '/#allowoverride/,/#AllowOverride/{s/#AllowOverride/AllowOverride/}' \
-e '/#allowoverride/,/AllowOverride/{s/AllowOverride/#AllowOverride/}' \
/etc/apache2/sites-available/${SITE_HOSTNAME}
Nous activons la configuration ainsi obtenue.
/usr/sbin/a2ensite ${SITE_HOSTNAME}
/etc/init.d/apache2 reload
Sauvegardes
Pour sauvegarder votre installation SPIP, je vous conseille d'utiliser Backup Manager. Pour l'installer, vous pouvez suivre mon guide:
Installer et configurer Backup Manager sur Debian
Une fois Backup Manager installé, vous pouvez configurer la sauvegarde des fichiers de SPIP avec la commande suivante:
/usr/bin/update-bm-folders add /opt/${SPIP_NAME}
/usr/bin/update-bm-folders add /var/lib/spip/${SPIP_NAME}
Important: Sauvegarder les fichiers ne suffit pas ! Il faut
aussi sauvegarder la base de données. La procédure pour ce faire est
disponible dans mon article MySQL sur Debian.
Ma sélection (rapide) de plugins
J'ai repéré les plugins suivants qui peuvent être intéressants :- cfg : Ce plugin est un système de gestion de configuration pour les plugins. De nombreux plugins en dépendent.
- swfupload : Ce plugin permet de se passer d'accès ftp au dossier Upload.
Remerciements
- Merci aux développeurs de SPIP.
Configuration
le plus simple est de passer l'option AllowOveride d'Apache 2 à All pour SPIP.
L'autre solution et de modifier le fichier mes_options.php, mais je recommande la première.
.htaccess
merci pour ce tutoriel :)
J'ai juste un problème à la fin, j'ai le message suivant
"Avertissement: la configuration de votre serveur HTTP ne tient pas compte des fichiers .htaccess. Pour pouvoir assurer une bonne sécurité,,
il faut que vous modifiez cette configuration sur ce point, ou bien que les constantes _DIR_TMP & _DIR_CONNECT (définissables dans le fichh
ier mes_options.php) aient comme valeur des répertoires en dehors de /var/www."
Faut-il modifier mes_options.php ou quelque chose dans apache ?