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.
Ce dernier point est important, surtout lorsque l'on veut faire marcher PluXml en local pour le tester, ou bien gérer son propre hébergement.
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 ©
Vus : 2496
Publié par PPmarcel : 21