Comment installer Apache, MySQL/MariaDB et PHP sur Windows
Habituellement, lorsque l'on développe des sites web en PHP sous Windows, il est recommandé d'utiliser une solution basée sur une machine virtuelle telle que Vagrant pour exécuter une véritable pile LAMP (système d'exploitation Linux, serveur web Apache, base de données MySQL ou MariaDB, et PHP). Il y a parfois des raisons pour lesquelles vous ne voulez pas d'un serveur virtualisé, mais d'une installation native de Windows, ou de WAMP.
Voici quelques raisons possibles :
- Vous avez un ordinateur d'entrée de gamme avec 4 Go de RAM ou moins, vous ne voulez peut-être pas les frais généraux et la lenteur que peut entraîner l'exécution d'un environnement de serveur virtualisé.
- Vous voulez avoir des utilitaires comme Composer, node, Grunt, etc. fonctionnant nativement sous Windows, et non pas cloisonnés dans votre VM.
- Vous n'êtes pas fan des solutions intégrées comme WAMPServer ou XAMPP, et vous voulez les déployer par vous-même.(Sérieusement, vous devriez vraiment essayer ces solutions, cela vous fera gagner du temps et vous évitera des maux de tête).
- Vous voulez pouvoir spécifier les versions exactes d'Apache, de PHP et de votre logiciel de base de données.
- Vous aimez les défis, et vous voulez juste voir si vous pouvez le faire.(Vous êtes un vrai dur à cuire !)
Quelle que soit la raison, il n'est pas si difficile de faire fonctionner une pile WAMP native. Voici les étapes à suivre...
Installation
La première chose à faire est de télécharger les différents composants logiciels :
Serveur HTTP Apache
Vous pouvez obtenir les binaires Windows directement sur le site Apache Lounge. Vous aurez également besoin du Redistribuable C++ Visual Studio 2015 Update 1.
- Décompressez l'archive et déplacez le dossier "Apache24" à la racine de votre lecteur C :.
- naviguez jusqu'au dossier C:\Apache24\bin, et maintenez la touche Majuscule enfoncée tout en cliquant avec le bouton droit de la souris dans le dossier. Dans le menu contextuel, choisissez "ouvrir une fenêtre de commande ici".
- exécutez la commande suivante pour installer Apache en tant que service :
> httpd.exe -k install
- Pour disposer d'une icône pratique dans la barre des tâches permettant de démarrer, d'arrêter et de redémarrer Apache, double-cliquez sur ApacheMonitor.exe.
- Si vous souhaitez que le moniteur Apache s'exécute au démarrage, placez un raccourci vers ApacheMonitor.exe dans votre dossier de démarrage.
- Pour ce faire, ouvrez la boîte de dialogue "Exécuter" en appuyant sur les touches Windows + R.
- Tapez "shell:startup" (sans les guillemets) dans la boîte d'édition "Ouvrir" et cliquez sur "OK". Votre dossier de démarrage s'ouvre.
- Cliquez avec le bouton droit de la souris et choisissez Nouveau > Raccourci Dans la boîte de dialogue du raccourci, utilisez le chemin C:\NApache24\NApacheMonitor.exe dans le champ d'emplacement.
- Cliquez sur suivant, puis personnalisez le nom du raccourci si vous le souhaitez et cliquez sur Terminer.
Serveur de base de données - MariaDB ou MySQL
MariaDB et MySQL sont deux serveurs de base de données fréquemment utilisés dans les applications web. MariaDB est un dérivé du projet MySQL et peut le remplacer aisément.
Téléchargez et exécutez le programme d'installation de l'une ou l'autre base de données - acceptez simplement les paramètres par défaut du programme d'installation. Vous serez invité à choisir le mot de passe de la racine de la base de données et vous voudrez probablement sélectionner "Installer en tant que service" pour l'enregistrer en tant que service Windows.


PHP
Au moment de la rédaction de cet article, les versions stables de PHP sont 5.6.18, ou 7.0.3. Les deux font l'affaire, cela dépend simplement des versions supportées par les applications PHP que vous utiliserez. Dans ce cas, nous utiliserons la version PHP 5.6.18 - VC11 x64 Thread Safe.
Extraire le fichier zip dans C:\Nphp
Configuration
Apache
Ouvrez le fichier de configuration d'Apache C:\Apache24\conf\httpd.conf dans Notepad ou votre éditeur de texte favori.
Ajoutez les directives suivantes :
# Ajouter à la fin de la section LoadModule
LoadModule php5_module "C:/php/php5apache.dll"
# Ajouter cette ligne à l'intérieur de l'accolade conditionnelle
AddType application/x-httpd-php .php
# Pour les fichiers .phps dont la syntaxe est mise en évidence, ajoutez également :
AddType application/x-httpd-php-source .phps
Vous devrez également décommenter les lignes pour charger les modules nécessaires, et inclure les fichiers de configuration nécessaires. En voici quelques-uns que vous voudrez peut-être activer :
# module rewrite
LoadModule rewrite_module modules/mod_rewrite.so
# Hôtes virtuels
Inclure conf/extra/httpd-vhosts.conf
PHP
- Ouvrez le fichier php.ini approprié dans un éditeur de texte tel que Notepad ou Notepad++.
- pour un serveur de développement, utilisez php.ini-development
- pour un serveur de production, utilisez php.ini-production
- Enregistrez ce fichier sous php.ini
- Recherchez"date.timezone", décommentez la ligne en supprimant le ';' et donnez-lui la valeur de votre fuseau horaire local, tel que défini à l'adresse http://php.net/date.timezone.
- Recherchez"extension_dir" et décommentez la ligne : extension_dir = "ext".
- Activez les différentes extensions que vous souhaitez en décommentant les lignes appropriées ';extension=xxx.dll' dans la section des extensions dynamiques. Vous devrez certainement décommenter les lignes pour php_mysql.dll ou php_mysqli.dll afin de vous connecter à une base de données MySQL ou MariaDB.
- Assurez-vous que les fichiers DLLs existent bien dans votre répertoire C:\php\ext ou vous obtiendrez une erreur lorsque vous tenterez de démarrer Apache.
Une fois la configuration de PHP terminée, il est temps de redémarrer Apache. Si tout se passe bien, vous verrez le message "It works !" lorsque vous visiterez le site http://localhost/.
Vous pouvez tester votre configuration PHP en créant un fichier de test phpinfo.php dans c:\Apache24\htdocs. Ajoutez le code suivant au fichier :
phpinfo();
Lorsque vous visitez http://localhost/phpinfo.php, vous verrez une liste de toutes vos variables et paramètres PHP.
Ce n'était pas si difficile, n'est-ce pas ?