nginx + PHP sous Debian (+ W3TC)

nginx est un serveur web rapide qui peut également être utilisé comme proxy inverse ou pour la diffusion de vidéos Flash. Développé à l'origine pour les besoins d'un moteur de recherche russe, de plus en plus de projets web reposent également sur nginx. Contrairement au serveur web bien connu Apache, la configuration de nginx sous Debian n'est pas aussi simple - les fichiers doivent toujours être adaptés à la main. Cet article décrit les changements de base nécessaires pour faire fonctionner PHP5 avec Xcache comme intégration FastCGI sous Debian. Les paramètres indiqués doivent toujours être adaptés à votre propre environnement.

Installation
La commande suivante installe les paquets appropriés :

apt-get install php5-cgi php5-xcache php5-mysql nginx

Dans notre cas, le serveur mysql est situé sur un autre serveur, sinon le paquet correspondant devrait être installé en plus. L'étape suivante consiste à configurer nginx, où nous conservons largement le standard Debian. Avec la commande

/etc/init.d/nginx start

est utilisé pour vérifier si la configuration fonctionne jusqu'à ce point et si le serveur web démarre correctement.

Configuration

Si c'est le cas, certains ajustements doivent encore être apportés aux paramètres PHP pour l'hôte respectif (l'hôte par défaut est configuré dans "/etc/nginx/sites-available/default").

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000 ; #php fonctionne sur localhost, port 9000
#fastcgi_index index.php ; 1TP3Non nécessaire pour cette configuration
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name ; #définit le répertoire
inclure /etc/nginx/fastcgi_params ;
}

Dans le fichier fastcgi_params, qui est créé par Debian sous /etc/nginx, quelque chose doit également être modifié. Les lignes suivantes doivent être commentées :

#fastcgi_param SCRIPT_NAME $document_root$fastcgi_script_name ;

Maintenant php-cgi peut être démarré seul pour voir si tout fonctionne :

php-cgi -b 127.0.0.1:9000

Un fichier php-info dans /var/www devrait maintenant retourner des informations sur le PHP installé. Si le message "aucun fichier d'entrée n'a été spécifié" s'affiche, c'est qu'il y a un problème avec les répertoires. Si tout fonctionne, le script de démarrage du php-cgi peut être appelé à partir de la section Nginx Wiki Les répertoires de téléchargement doivent également être protégés comme décrit dans le wiki afin que PHP ne puisse pas y être exécuté.

Bientôt, nous continuerons ici avec les redirections sous Nginx et les URL en texte brut avec WordPress (puisque ce blog les utilise déjà).

Il existe un très bon plugin pour WordPress, W3TC, qui fournit/active divers mécanismes qui accélèrent considérablement la diffusion de WordPress. Ce plugin fonctionne également avec nginx, mais la configuration de réécriture doit être adaptée (W3TC fournit des informations à ce sujet). Toutefois, la fonction "Minify" pour les CSS et les JS a empêché le chargement de certains graphiques sur cette page. Le dépannage est toujours en cours, mais d'ici là, l'avantage en termes de vitesse reste évident. Apache-Bench montre des valeurs correspondantes qui semblent assez bonnes pour un vServer :

Demandes complètes : 1500
Requêtes par seconde : 91.20 [#/sec] (moyenne)
Temps par demande : 10,965 [ms] (moyenne)
Taux de transfert : 4084.89 [Kbytes/sec] reçus

Je verrai dans les prochains jours s'il est possible de l'optimiser davantage.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *