Lorsque l'on débute et que l'on souhaite apprendre PHP, il n'est pas forcément facile d'avoir un environnement de travail correct sous Windows. Même si l'idéal est d'utiliser une machine virtuelle pour simuler un environnement proche de l'environnement final, ce n'est pas forcément une solution simple à mettre en place (il faut être à l'aise sur Linux, et savoir installer la stack complète).
Une solution plus simple consiste à installer PHP et MySQL directement sur Windows avec des outils comme Wamp, Xamp ou EasyPHP. Ces outils sont très bien faits, mais ont une opinion assez forte sur comment faire les choses et préconfigure beaucoup de chose à votre place vous empêchant souvent de comprendre ce qui se passe derrière. De plus, grâce à l'apparition du serveur web interne de PHP il n'est plus forcément nécessaire d'avoir Apache pour tester son site.
Aussi, nous allons voir comment installer un environnement PHP / MySQL nativement sur Windows manuellement.
Installer MySQL ou MariaDB
Pour la plupart de nos projets PHP on aura besoin d'une base de données MySQL. Ce système de gestion de base de données a l'avantage de fonctionner nativement sur Windows (pour ceux qui le souhaitent, et qui savent de quoi il s'agit, vous pouvez remplacer MySQL par MariaDB). Quelques remarques concernant le processus d'installation :
- Lorsque vous cliquez sur "Download", il n'est pas nécessaire de s'inscrire, cliquez simplement sur le lien "No thanks, just start my download." en bas de page.
- L'installeur vous demandera le type d'installation à effectuer. Sélectionnez une installation custom et n'activez que MySQL Server.
- Par défaut, on n'utilisera MySQL qu'en local, vous pourrez donc décocher la case concernant la création de règles dans le pare-feu. En effet, on ne souhaite pas rendre notre serveur MySQL accessible depuis l'extérieur (pour des raisons évidentes de sécurité)
- Pour le reste vous pouvez laisser les valeurs par défaut.
Ensuite il faudra modifier la variable d'environnement afin d'ajouter le dossier MySQL au PATH
de votre système (par exemple C:\Program Files\MySQL\MySQL Server 5.7\bin
). Une fois ce chemin ajouté, redémarrez votre terminal et de taper la commande suivante afin de vérifier que la configuration est correctement faite
mysql -uroot -p
Installer PHP
L'installation de PHP est relativement simple. Pour commencer, il vous suffit de télécharger la version de PHP que vous souhaitez utiliser depuis http://windows.php.net/download/ (pour le développement vous pouvez la version Non Thread Safe).
Ensuite il faudra modifier la variable d'environnement afin d'ajouter le dossier PHP au PATH
de votre système (par exemple C:\Program Files\PHP
). Une fois ce chemin ajouté, redémarrez votre terminal et tapez la commande suivante afin de vérifier que la configuration est correctement faite
php --version
Vous pouvez aussi tester PHP de manière interactive en tapant la commande
php -a
Si vous obtenez une erreur vous indiquant que la dll VCRUNTIME3.40 est manquante vous devrez alors installer Visual C++ Redistribuable 2015 et redémarrer votre terminal.
Configurer PHP
La configuration se fait au travers d'un fichier php.ini
qui doit se trouver à la racine de votre dossier PHP. Par défaut ce fichier n'est pas présent mais vous avez 2 fichiers d'exemple :
php.ini-development
, vous donne un exemple de configuration pour l'environnement de devphp.ini-production
, vous donne un exemple de configuration pour la mise en production
Nous allons donc copier et renommer le fichier php.ini-development
en php.ini
et nous allons l'éditer pour adapter la configuration à notre utilisation :
-
Par défaut, php ne sait pas dans quel dossier charger les extensions, on va donc modifier la ligne correspondant à la directive
extension_dir
.extension_dir = "ext"
-
On va ensuite activer certaines extensions pour éviter les problèmes dans le futur. Vous devriez avoir une liste d'extension commentée par défaut (préfixé par un ; vers la ligne 880)
;On active les extensions suivantes extension=php_curl.dll extension=php_fileinfo.dll extension=php_gd2.dll extension=php_mbstring.dll extension=php_mysqli.dll extension=php_pdo_mysql.dll extension=php_openssl.dll
-
Et c'est tout ! Vous pouvez passer à l'étape suivante
Installer Composer
Composer est un outil incontournable pour télécharger des librairies pour son projet mais aussi pour installer les frameworks. L'installation sur Windows se fait simplement à travers l'installeur fourni sur le site. L'installation devrait faire les choses automatiquement et détecter votre installation de PHP.
Une fois cette installation terminée vous pouvez redémarrer le terminal et tester votre installation via la commande.
composer --version
Si vous obtenez une erreur de type "Command Unknown" essayez de rajouter le chemin de composer au PATH
de votre système manuellement.
Lançons notre serveur !
Maintenant que tous les outils sont installés vous pouvez simplement utiliser le serveur web interne de PHP lorsque vous souhaitez tester votre site. Il faut pour cela se rendre dans le dossier contenant vos fichiers PHP puis taper la commande
php -S localhost:8000
Si vous voulez en apprendre plus, je vous invite à voir le tutoriel dédié à l'utilisation du serveur interne de PHP
Bonus
Make et autres outils Unix
Cette étape est facultative mais peut vous aider à utiliser certains outils Unix sans avoir à passer par une machine virtuelle.
Cygwin est un outil qui contient une grande collection d'outils fournissant des fonctionnalités similaire à ceux d'une distribution linux sur Windows. L'installation se fait au travers d'un installeur classique :
- Lors du choix du chemin d'installation, n'installer surtout pas cygwin dans un dossier contenant un espace (évitez donc Program Files).
- Le choix du miroir importe peu, en revanche à l'étape suivante on vous proposera de choisir les paquets à installer. Vous pouvez alors sélectionner les outils Unix que vous souhaitez utiliser dans cygwin. C'est à cette étape que je sélectionne
make
par exemple (outil qui "devrait" être nécessaire pour Symfony 4).
Xdebug
Xdebug est une extension PHP qui permet de mieux debugguer son application, elle permet d'améliorer la mise en page de la fonction var_dump mais permet aussi de mettre en place un système de point d'arrêts pour debugguer son application pas à pas. Pour l'utiliser il vous suffit de télécharger la version correspondant à votre version de PHP et placer la dll dans le dossier des extensions. Il vous faudra ensuite activer l'extension en modifiant le fichier .ini
:
zend_extension=php_xdebug-2.5.5-7.1-vc14-nts-x86_64.dll
Vous pouvez ensuite autodémarrer la session de debug au lancement de votre serveur PHP à l'aide des drapeaux -d
php -S localhost:8000 -t public -d display_errors=1 -d xdebug.remote_enable=1 -d xdebug.remote_autostart=1