Auto-héberger son site PluXml
Ce tutorial ne concerne que les personnes souhaitant utiliser le CMS PluXml. Pour ma part, j'utilise ce gestionnaire de blog pour plusieurs raisons:
- il est très léger,
- il est facilement hackable,
- et il est surtout très portable grâce au stockage des données dans des fichiers XML.
Pour le faire fonctionner, il n'est nullement nécessaire d'installer les composants LAMP (Linux/Apache/MySQL/PHP), bien trop poussés pour le CMS. A la place, je vous propose d'installer uniquement ce qui sera utile au bon fonctionnement de PluXml.
Cette solution sera articulée autour de lighttpd, un serveur web minimaliste, et PHP5, dont on ne peut pas se passer.
Installation des composants
La machine pour cet exemple est basée sur Debian Squeeze. Il faut tout d'abord installer les composants nécessaire, à savoir le serveur web lighttpd, php5-cgi qui va gérer les requêtes, et php5-gd pour gérer la galerie d'images:aptitude install lighttpd php5-cgi php5-gd
Configurons lighttpd
Les paramètres basiques
Nous allons activer l'utilisation de FastCGI, qui va nous permettre de traiter les requêtes un peu plus rapidement:# lighty-enable-mod fastcgi Available modules: auth accesslog cgi fastcgi no-www proxy rrdtool simple-vhost ssi ssl status userdir fastcgi-php debian-doc Already enabled modules: Enabling fastcgi: ok Run /etc/init.d/lighttpd force-reload to enable changes # /etc/init.d/lighttpd force-reload Reloading web server configuration: lighttpd.
En outre, nous allons indiquer à lighttpd où trouver l'exécutable php5-cgi, sous peine de voir un beau message d'erreur '403 - Forbidden' au niveau du serveur web. Editons le fichier de configuration et ajoutons ces lignes vers la fin:
# vim /etc/lighttpd/lighttpd.conf
[...] fastcgi.server = ( ".php" => (( "socket" => "/tmp/php-fastcgi.socket", "bin-path" => "/usr/bin/php5-cgi" )) )
On recharge la configuration du serveur:
# /etc/init.d/lighttpd force-reload
La protection des pages de l'administration
Nous allons préparer un certificat pour l'utilisation de https. Pour cela, installons ssl-cert:# aptitude install ssl-cert
Générons le certificat au bon endroit:
# mkdir /etc/lighttpd/certs # make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/lighttpd/certs/lighttpd.pem
Et ajoutons le certificat à lighttpd.conf
# vim /etc/lighttpd/lighttpd.conf
[...] $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" }
Profitons-en pour décommenter mod_redirect dans la première section:
server.modules = ( "mod_access", "mod_alias", "mod_compress", # "mod_rewrite", "mod_redirect",
A la fin du fichier, ajoutons ces lignes, qui forceront https dans les pages d'administration:
$SERVER["socket"] == ":80" { $HTTP["host"] =~ "(.*)" { url.redirect = ( "^/(core/admin/.*)" => "https://%1/$1" ) } }
La protection des fichiers
Maintenant nous allons verouiller l'accès aux fichiers de configuration, aux articles, ainsi que la navigation dans les fichiers du site.Dans le fichier de conf, changeons le paramètre "server.dir-listing" pour interdire la navigation dans le contenu du site:
server.dir-listing = "disable"
Maintenant, nous empêcher les clients de regarder les fichiers de configuration, le code source de nos articles et des commentaires. Nous n'autoriseront que l'accès aux images, pour qu'elles s'affichent correctement sur le site.
Ajoutons ces directives tout à la fin du fichier de configuration:
$HTTP["url"] =~ "^/data/((?!images).*)" { url.access-deny = ( "" ) }
Puis redémarrons lighttpd:
# /etc/init.d/lighttpd restart
Installation de PluXml
Récuperons la dernière version de PluXml sur le site du projet.Nous allons la décompresser dans le répertoire /var/www:
$ unzip pluxml-latest.zip # mv pluxml/* /var/www
Puis nous allons modifier les droits des fichiers du site:
# chown -R www-data:www-data /var/www/*
Maintenant, il ne suffira plus que de se connecter à son site via un navigateur web. Comme vous pourrez le constater, tout devrait marcher sans message d'erreur:
Il ne reste plus qu'à renseigner un nom de rédacteur et un couple login/mot de passe.
Post-installation de PluXml
Il reste un dernier point crucial concernant l'auto-hébergement.Dans les pages d'administration, allez dans les paramètres, puis "Configuration de base". Dans le 3eme champ "Racine du site", pensez à indiquer l'adresse IP publique associée à votre machine, ou un nom de domaine pointant cette adresse, suivit d'une barre oblique "/".
En effet, si vous vous contentez de mettre une IP privée, voire 127.0.0.1/, cela marchera très bien localement, mes vos visiteurs internautes ne pourront pas résoudre ces adresses et n'accèderont qu'à la page d'index sur site.
Le mot de la fin
Votre site web est maintenant pret à fonctionner. Si vous voulez importer un blog PluXml existant, copiez avant tout l'intégralité du site dans /var/www. Personnellement, cette solution me permet de tester à l'avance des modifications de ce site, mais vous pouvez aussi mettre en place un blog sur votre propre serveur sans passer par LAMP.Liens
EDIT 30/10/10: Suppression de la modification du thème. Ajout du forçage de https depuis lighttpd. Ajout de la protection des fichiers.
EDIT 21/11/10: Ajout de la partie post-installation (merci à Jordan Zedi pour avoir mis en évidence le problème).
EDIT 25/12/10: Ajout détail "barre oblique" dans post-install
Crédit photo: thefunnyblog . org ©