je dois travailler parfois sur Windows et lorsqu’il m’arrive de tester un site Web en local, je me rabattais comme beaucoup sur l’incontournable WAMP. Dernièrement en testant une version de Drupal, je constatai à quel point les performances étaient pathétiques et cela malgré une machine relativement dimensionnée.

Fan de NGinx, couplé avec PHP-FPM, et décidément fâché avec Apache, je me suis mis alors à rechercher un moyen de remplacer WAMP par NGinx sur la plate-forme Windows. Après plusieurs essais, je suis finalement tombé sur le projet WT-NMP. Comme je cherchai à promouvoir NGinx, je voulais trouver une solution aussi simple que WAMP à installer. Et ce projet possède toutes ces qualités.

Installation

Télécharger la dernière version de WT-NMP et extraire les fichier dans un répertoire. Arrêter complétement WAMP s’il tourne et lancer l’exécutable wt-nmp.exe à la racine du répertoire d’extraction. On obtient alors la console ci-dessous.

WT-NMP-Console

Les bases se gèrent facilement au moyen des interfaces suivantes:

WT-NMP-GestionnaireSessions

WT-NMP-SQLManager

Une fois démarré, on teste rapidement l’installation en ouvrant l’URL http://localhost:

WT-NMP-localhost

L’installation d’un nouveau site PHP se fait simplement en copiant les fichiers dans le répertoire \WWW. On peut être amené à modifier le fichier de configuration de NGinx pour optimiser les performances.

Configurer php.ini

Maintenant il peut être une bonne idée d’ajuster les paramètres PHP dans le fichier php.ini. Cette étape est optionnelle mais recommandée.

Les ajustements classiques du fichiers php.ini pour un environnement de développement en local sont les suivantes:

  • Commenter la ligne disabled_functions
  • Commenter la ligne disabled_classes
  • ajouter extension=   php_xcache.dll

Optionnellement:

  • Augmenter la valeur de memory_limit de 64M à (par exemple) 128M
  • Désactiver shortopentag (shortopentag = off)
  • Activer XDebug. Par exemple:
xdebug.remote_enable=on  
xdebug.remote_host=localhost  
xdebug.remote_port=9001  
xdebug.remote_handler="dbgp"  
  • Ajouter la variable suivante avec par exemple: maxexecutiontime = 3000
  • Ajouter la variable suivante avec par exemple: requestterminatetimeout=3000

Si vous avez des problèmes de connexion à la base de données avec un site essayez d’activer l’extension MySQL (MySQLi est activée par défaut).

Mysql

Il peut être utile d’ajuster les valeurs des Time Out (wait_timeout et connect_timeout) dans le fichier mysql.ini.

Plus

Maintenant que nous avons un serveur de correctement paramétré il est intéressant de paramétrer le plugin Eclipse PDT. Pour cela, ouvrir le “workspace properties” d’Eclipse (Windows > Preferences), et aller à la page PHP > PHP Servers. Ajouter le nouveau serveur avec les bons paramètres.

Ensuite aller à la page PHP > Debug. Modifier la valeur de PHP Debugger à XDebug et s’assurer que le bon serveur est sélectionné. Cliquer sur Configure… et changer le port  XDebug pour correspondre à celui du php.ini (cf. plus haut).

Conclusion

Je devais tester Dupal Commerce et après avoir tenté une installation avec WAMP je me suis retrouvé avec un site local inexploitable: les pages d’administration mettaient plus de 3 secondes à s’afficher!
Avec WT-NMP on récupère la puissance de NGinx sur Windows en ne sacrifiant pas la simplicité (relative) de WAMP. En plus,  on récupère la possibilité d’utiliser les capacités de debugging d’Eclipse’s PDT.