Développer un site web en php sans installer Apache, Nginx ou Lighttpd
Lorsqu'on développe un site internet et qu'on n'a pas l'âme d'un administrateur système, c'est pénible de configurer un serveur web. Quand on travail sur un projet versionné, c'est irritant de configurer un vhost à chaque nouvelle branche. Bref, pour développer, c'est chiant de se cogner la configuration d'un serveur...quelqu'il soit.
Depuis PHP 5.4.0, il est possible de lancer un serveur (voué au développement) très facilement. En effet, il suffit de se placer dans le répertoire de travail et de lancer une commande pour avoir un son serveur opérationnel.
$ cd /chemin/vers/le/projet $ php -S localhost:8000
Dans cette commande, je décide que le serveur écoute sur le port 8000. Si je me rend sur mon navigateur à l'adresse http://localhost:8000/
, alors mon projet est exécuté comme si c'était via un serveur web classique.
La particularité de ce serveur se place dans le routage. Par défaut, si aucun fichier n'est explicitement indiqué dans la requête HTTP, alors le fichier index.php (ou index.html) servira de routeur : toutes les requêtes passeront donc par lui. On peut redéfinir le routeur par défaut et spécifier le répertoire de travail directement la commande de lancement du serveur.
$ php -S localhost:8000 -t /chemin/vers/le/projet $ php -S localhost:8000 -t /chemin/vers/le/projet /chemin/vers/le/routeur.php
Si le routeur est redéfini, alors vous devrez gérer l'accès aux assets (@see la doc, exemple 3).
Bref, un outil très pratique pour déployer rapidement un environnement de développement PHP. Il est bon de noter que les requêtes sont servies de manière séquentielle donc vous aurez des pertes de performances.