Installer WordPress sur Debian avec NGINX
2011
Vous l’avez certainement remarqué, ce site tourne sous WordPress, l’un des moteurs de blogs les plus en vogue. Si à l’origine j’ai opté pour une configuration « classique » de type LAMP, ma curiosité a vite été attisée par le serveur web alternatif NGINX auquel j’ai par ailleurs consacré quelques articles (voir la rubrique NGINX). Sachant que NGINX supporte wordpress.org, j’ai voulu moi aussi profiter des avantages de ce serveur et monter mon propre « bundle » LEMP.
Comment émuler les règles de réécriture du .htaccess pour obtenir des permaliens personnalisés, quelles extensions installer avec WordPress pour en tirer le meilleur parti, c’est ce que nous allons voir ici.
Prérequis
Il est évidemment nécessaire d’avoir installé votre serveur LEMP ; deux articles vous permettent d’effectuer cette tâche : Installer NGINX, PHP5-FPM, Xcache et MySQL sur une Debian Lenny / Squeeze ou plus simple encore, Configurer un serveur web sur Debian Squeeze via Dotdeb.
Si vous souhaitez uniquement installer WordPress et écrire vos articles, sans développement quelconque, je vous déconseille d’installer xdebug ou xhprof, à proscrire sur des serveurs de production.
Pour les archives, WordPress utilise le format zip, il est donc nécessaire d’installer unzip, qui n’est pas fourni sur une installation Debian d’origine. Pour cela, il suffit d’une simple ligne de commande :
apt-get install unzip
Configurer NGINX
Ouvrez le fichier de configuration de NGINX :
vim /etc/nginx/sites-enabled/default
et remplacer la section server par celle-ci :
server {
root /var/www/wordpress/;
listen 80;
server_name exemple.com www.exemple.com;
index index.php index.html;
server_name_in_redirect off;
port_in_redirect off;
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico)$ {
access_log off;
expires 30d;
}
# rewrite rules
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
Enfin relancez NGINX :
/etc/init.d/nginx restart
Installation de WordPress
Commencez par vous rendre là où vous installerez WordPress :
cd /var/www
Puis téléchargez l’archive, décompressez-la et supprimez-la :
wget http://fr.wordpress.org/latest-fr_FR.zip unzip latest-fr_FR.zip rm -f latest-fr_FR.zip
Éditez le fichier de configuration :
vim wordpress/wp-config-sample.php
et modifiez les paramètres d’accès à votre base de données, ainsi que les phrases secrètes, pour des raisons de sécurité, enregistrez, et renommez le fichier :
mv wordpress/wp-config-sample.php wordpress/wp-config.php
Vous pouvez maintenant accéder à votre blog en entrant l’url dans votre barre d’adresse dans votre navigateur : http://www.[votre-blog].com
Post-installation
Il reste à configurer WordPress en suivant les étapes indiquées à l’écran, rien de complexe, vous êtes guidés.
Les extensions indispensables
WordPress propose par défaut l’extension Askimet, si vous ne l’avez jamais utilisée suivez les étapes proposées pour vous enregistrer et activer l’extension.
Une extension est tout particulièrement utile, il s’agit de nginx Compatibility, qu’il vous suffit de télécharger et d’activer (attention, activez la version pour PHP 5).
Pour optimiser les performances de mon blog, j’ai utilisé deux extensions pour mettre le contenu en cache : DB Cache Reloaded et Hyper Cache. Simples à installer (soit en ligne de commande, soit en passant par le back-office) et à configurer, elles évitent de solliciter la base de données à chaque visite sur le site.
Voilà, votre configuration de WordPress est terminée, il vous reste à configurer les permaliens, à ajouter vos extensions préférées, et bien sûr à écrire les articles que vous rêviez d’écrire.
Ma configuration actuelle
Après plusieurs années de fidélité à Debian, j’ai tenté l’expérience CentOS pour bénéficier d’un panneau de contrôle professionnel : CPanel. Une autre approche, mais des performances au rendez-vous grâce à Varnish Cache, Apache 2 + mod_pagespeed. Peut-être le thème d’un prochain article…
