WordPress est un outil de blog (un CMS diront certains) que je trouve assez sympa. Son premier but est de pouvoir publier facilement un blog, c’est-à-dire publier du contenu. Il n’est cependant pas trop prévu pour publier du contenu à accès restreint.
Dans les dernières versions, on voit des options pour protéger par mot de passe un article (ou une page). Mais ça s’arrête là, mais ça peut suffire dans bien des cas.
J’avais besoin de monter un site rapidement avec quelques pages statiques et des news, facilement éditables. WordPress convenait donc, mais dans un contexte entreprise, il fallait priver l’intégralité de l’accès.
En cherchant un peu, on trouve donc 2 plug-ins parfaits pour ça.
Voici ce retour d’expérience : installer WordPress avec authentification LDAP et contenu complètement privé (members-only).
Installation
Je suis parti sur une version SVN (la 2.6.2) car elle permet d’utiliser des plug-ins récents, qui ne fonctionnent pas pour ma version “stable” Debian (2.0.x). J’ai donc tout fait à la main, je vous résume ceci.
Préparation de la base MySQL
En console mysql, vous taperez par exemple :
CREATE DATABASE wordpress; CREATE USER ‘wpadmin’@'localhost’ IDENTIFIED BY ‘mon_passwd’; GRANT ALL ON wordpress.* TO ‘wpadmin’@'localhost’;
Ceci vous crée la base vide et un utilisateur d’administration.
Installation et configuration de l’application
Je schématise, côté OS et téléchargement de l’application :
mkdir /srv/www/wordpress cd /srv/www/wordpress svn co http://svn.automattic.com/wordpress/trunk/
Vous éditerez alors votre fichier /srv/www/wordpress/trunk/wp-config.php
pour y renseigner au moins les champs suivants :
define(’DB_NAME’, ‘wordpress’); define(’DB_USER’, ‘wpadmin’); define(’DB_PASSWORD’, ‘mon_passwd’); define(’DB_HOST’, ‘localhost’);
Vous ajouterez la conf Apache qui va bien (VirtualHost ou non), avec au moins ceci :
< Directory> # sans l'espace Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php < /Directory> # sans l'espace
Du classique, je ne détaille pas trop, je me concentre sur WordPress, pas Apache2.
Lancement de l’installeur
Ensuite, vous irez sur http://votre_site/votre_blog/wp-admin/install.php pour lancer l’installation en 2/3 clics.
Vous voilà avec un wordpress tout vide et opérationnel.
Je passe sur le tour du propriétaire, j’enchaîne directement sur le choix et l’installation des plug-ins qui vont bien.
Les plug-in LDAP
Il y en a plusieurs, plus ou moins suivi, plus ou moins compatibles avec votre version de WordPress. J’ai trouvé sur le site notamment celui-ci (wpDirAuth) compatible avec plein de LDAP, notamment OpenLDAP.
Après 2 heures de galère, on apprend que la version officielle sur ce site (1.2) n’est pas compatible avec WordPress 2.6+.
Vous utiliserez donc la version 1.3 disponible ici.
L’installation est classique, en gros :
cd /srv/www/wordpress/trunk/wp-content/plugins wget http://www.royal.wednet.edu/~ayearout/wpDirAuth-1.3.zip unzip wpDirAuth-1.3.zip
Puis activation du plugin dans l’interface d’administration de WordPress. Classique. Son paramétrage ressemble à ceci, très complet :
Plug-in “members-only”
Enfin, ce plug-in permet de faire en sorte qu’il faille être connecté pour accéder au moindre contenu. Par défaut, vous êtes donc redirigé vers la page d’authentification.
Et voilà le travail