53 votes

Comment installer manuellement Apache, PHP et MySQL sous Windows ?

Comment installer Apache avec PHP et le serveur MySQL sous Windows ? sans en utilisant des paquets prêts à l'emploi comme WAMPServer ou XAMPP ?

68voto

Apache

Tout d'abord, je vous recommande de lire le Notes spécifiques à la plate-forme d'Apache pour Windows - il explique certaines fonctionnalités spécifiques à Windows, comme l'exécution en tant que service, que vous n'avez pas sous d'autres systèmes d'exploitation et que vous n'avez probablement jamais utilisées auparavant.

Comme mentionné dans ces notes spécifiques aux plates-formes, Apache ne fournit pas de binaires pour Windows, mais il existe des liens vers plusieurs sites tiers qui fournissent des binaires, par exemple Salon Apache .

Sur ce site web, nous pouvons télécharger soit la version 32-Bit (win32), soit la version 64-Bit (Win64) - si votre système d'exploitation est 64-Bit, vous devriez toujours essayer d'installer les versions 64-Bit des logiciels, mais notez que vous devrez également utiliser les modules 64-Bit, ce qui signifie que si vous n'avez qu'un module 32-Bit, téléchargez l'Apache 32-Bit.

Voici la version que j'ai utilisée pour rédiger cet article : Apache 2.4.10 Win64 . La dernière version lorsque cette réponse a été mise à jour pour la dernière fois : Apache 2.4.38 Win64 (voir la date d'édition au bas du message).

Une fois téléchargé, il suffit d'extraire le fichier Apache24 à la racine de votre disque dur, de façon à obtenir un chemin d'accès du type C:\Apache24\bin .

Ouvrez une fenêtre de ligne de commande (Windows+R et tapez cmd puis appuyez sur Entrée), changez de répertoire en C:\Apache24\bin et exécuter httpd.exe Normalement, il ne devrait pas afficher d'erreurs.

Si vous obtenez une boîte de dialogue d'erreur indiquant que MSVCR110.dll n'est pas présent sur votre système, vous devrez installer le programme Redistribuable Visual C++ pour Visual Studio 2012 - comme toujours, lorsque vous y êtes invité, sélectionnez la version binaire appropriée : vcredist_x86.exe pour les systèmes 32 bits et vcredist_x64.exe pour les 64 bits.

Si vous obtenez une erreur indiquant qu'il ne peut pas se lier au port 80, vérifiez si une autre application utilise ce port. Skype est également connu pour utiliser les ports 80 et 443 par défaut ; décocher "Utiliser les ports 80 et 443 comme alternatives pour les connexions entrantes" dans ses paramètres de connexion avancés Redémarrez Skype pour appliquer les modifications et vous devriez pouvoir démarrer Apache sans problème.

Un avertissement tel que Could not reliably determine the server's fully qualified domain name peut être ignorée pour l'instant.

Le pare-feu Windows peut vous demander d'autoriser Apache à communiquer sur des réseaux spécifiques. Je vous recommande d'utiliser les paramètres par défaut : autorisez-le sur les réseaux domestiques et professionnels, mais pas sur les réseaux publics/non fiables.

Ensuite, ouvrez un navigateur et naviguez jusqu'à http://localhost Si vous voyez une page disant It works ! cela signifie que votre installation d'Apache fonctionne.

Vous pouvez maintenant arrêter Apache en cours d'exécution en appuyant sur Ctrl+C dans l'invite de commande.

Si vous avez reçu un avertissement concernant l'impossibilité de déterminer le nom de domaine pleinement qualifié du système, corrigez le problème en modifiant le fichier C:\Apache24\conf\httpd.conf et d'éditer le ServerName (elle devrait être déjà présente dans un commentaire, il suffit de la décommenter et de la modifier) :

ServerName <yourhostname>

Remplacer <yourhostname> avec le nom d'hôte du système ou localhost .

Enfin, si vous souhaitez lancer le serveur automatiquement au démarrage du système (même si personne ne se connecte), vous devez le faire fonctionner en tant que service - dans une nouvelle invite de commande élevée (en tant qu'administrateur), tapez :

httpd.exe -k install

Voilà, vous avez maintenant un nouveau service dans Services (Windows+R puis tapez "services.msc" et appuyez sur Entrée) nommé "Apache2.4" que vous pouvez contrôler comme n'importe quel autre service Windows.

Restreindre l'accès d'Apache à localhost seulement - facultatif

Si vous configurez ceci à des fins de développement, vous voulez vous assurer que personne d'autre que vous ne peut y accéder. Votre pare-feu devrait déjà s'en charger, mais ajoutons une autre couche de sécurité en disant à Apache de n'accepter que les requêtes provenant de la machine locale.

Ouvrir le fichier de configuration d'Apache C:\Apache24\conf\httpd.conf Rechercher le bloc de répertoire par défaut <Directory "c:/Apache24/htdocs"> .

À la fin de celui-ci, il doit y avoir une ligne Require all granted Cela signifie que n'importe qui peut accéder à ce serveur. Faisons en sorte que Require local qui n'autorise l'accès qu'à partir de la machine locale.

Vous pouvez également demander à Apache de ne se lier qu'à l'interface loopback. Ainsi, même si votre pare-feu et les directives de contrôle d'accès mentionnées ci-dessus échouent, le serveur ne sera pas ouvert à l'ensemble de l'internet.

Pour ce faire, localisez le Listen (par défaut, elle est fixée à 80 ) et le remplacer par ce qui suit :

Listen 127.0.0.1:80
Listen [::1]:80

La première ligne est explicite, la seconde est l'équivalent IPv6 de la première, les crochets sont utilisés dans la notation IPv6 pour séparer l'adresse et le port.

Sauvegardez le fichier, si vous faites déjà tourner le serveur, redémarrez-le afin de prendre en compte nos changements, et maintenant seulement localhost a accès, tous les autres recevront un 403 Forbidden .

PHP

Je vous suggère de lire le la documentation officielle de PHP sur l'installation du logiciel sur les systèmes Windows.

Téléchargez les derniers binaires PHP à partir du site officiel Page de téléchargement de PHP pour Windows Choisissez la version thread-safe qui correspond à la version bit de votre installation Apache (x86 pour 32-Bit, x64 pour 64-Bit).

La version non sécurisée pour les threads ne fonctionne que lorsqu'elle est exécutée en tant que binaire CGI - plus d'informations aquí .

La version que j'ai utilisée est la suivante : PHP 5.6.2 VC11 x64 Thread Safe . La dernière version lorsque cette réponse a été mise à jour pour la dernière fois : PHP 7.3.3 VC15 x64 Thread Safe (voir la date d'édition au bas du message).

Créer un espace vide PHP à la racine de votre disque dur, et y extraire l'archive précédemment téléchargée, vous devriez avoir un chemin comme C:\PHP\ext Sinon, vous avez commis une erreur.

En C:\PHP , renommer le php.ini-production o php.ini-development (en fonction de ce que vous souhaitez) à php.ini .

Ouvrez le php.ini rechercher le fichier extension_dir = "ext" et décommentez cette ligne (supprimez le premier ; ). Cela définit le répertoire d'extension par défaut à ext (qui se résout en C:\PHP\ext et évite d'avoir à ajouter à l'avance ext/ à tous les chemins d'accès des extensions, comme dans les versions précédentes de ce billet.

Configurez maintenant Apache pour qu'il utilise ce PHP, en éditant C:\Apache24\conf\httpd.conf - après tous les LoadModule ajouter ce qui suit :

(Ce qui suit est pour PHP 7 sólo )

LoadModule php7_module "c:\php\php7apache2_4.dll"

<IfModule php7_module>

    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "c:\php"
</IfModule>

(Le texte suivant concerne PHP 5 sólo )

LoadModule php5_module C:/PHP/php5apache2_4.dll

<IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Essayez maintenant de démarrer Apache manuellement en ouvrant une invite de commande dans C:\Apache24\bin et en cours d'exécution httpd.exe - si vous ne voyez pas d'erreur, cela signifie que votre fichier de configuration est valide et que PHP fonctionne. très probablement en activité .

Vous pouvez tester votre installation PHP en créant un fichier du type info.php con <?php phpinfo(); à l'intérieur et de se rendre à http://localhost/info.php - vous devriez voir un certain nombre d'informations sur votre système, votre installation PHP et tous ses modules. Si vous obtenez quelque chose d'autre, comme une "erreur interne du serveur", cela signifie que quelque chose ne va pas.

Vous pouvez maintenant tuer votre processus Apache actuel (Ctrl+C dans la console) et démarrer le service - la partie suivante n'interagit pas avec Apache et peut être réalisée avec le serveur déjà démarré.

Compositeur - facultatif

Composer est un outil de gestion des dépendances en PHP, comme un gestionnaire de paquets. Il permet d'installer facilement des paquets PHP et même des frameworks entiers.

Composer nécessite l'activation de l'extension PHP OpenSSL, nous allons donc l'activer dans C:\PHP\php.ini .

Utilisez la fonction de recherche de votre éditeur de texte pour rechercher php_openssl.dll Il devrait déjà y avoir une ligne commentée pour cela, il suffit de décommenter cette ligne.

Téléchargez maintenant le programme d'installation de Composer pour Windows à partir de leur site web. page de téléchargement - ou utilisez simplement ceci lien direct .

Suivez les instructions, lorsque l'on vous demande le chemin d'accès à PHP, naviguez jusqu'à C:\PHP et sélectionnez php.exe .

Voilà, Composer est maintenant installé sur l'ensemble du système et peut être utilisé de n'importe où - vous pouvez l'essayer, il suffit d'ouvrir une nouvelle invite de commande (vous ne pouvez pas utiliser une invite de commande déjà ouverte car elle doit lire le nouveau fichier PATH définie par le programme d'installation de Composer) et tapez composer .

Vous devriez obtenir un joli logo ASCII-art et quelque chose comme ceci :

Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28

Extensions PHP MySQL - facultatif

Si vous souhaitez accéder à votre base de données MySQL à partir de PHP, vous devez activer les extensions qui vous permettent de le faire, telles que php_mysqli o php_pdo_mysql - Je recommande de les activer tous les deux.

Ouvrir le fichier de configuration de PHP C:\PHP\php.ini dans votre éditeur de texte et recherchez php_mysqli o php_pdo_mysql - ils devraient déjà être là, décommentez-les.

Vous pouvez maintenant accéder à n'importe quelle base de données MySQL en utilisant l'une ou l'autre des méthodes suivantes mysqli o PDO .

MySQL

Sur le site Page de téléchargement de MySQL Installer télécharger l'installateur web mysql-installer-web-community-xxxxx.msi .

J'ai utilisé mysql-installer-web-community-5.6.21.1.msi. La dernière version lors de la dernière mise à jour de cette réponse : mysql-installer-web-community-8.0.15.0.msi (voir la date d'édition au bas du message).

_Le programme d'installation installera automatiquement la version appropriée (32-Bit ou 64-Bit) en fonction de votre système, même si la version bit de MySQL n'a pas besoin de correspondre à celle d'Apache et de PHP, il est toujours bénéfique d'utiliser la version 64-bit si votre système la supporte afin de profiter de plus de 3 Go de RAM C'est très important car les serveurs de base de données ont tendance à utiliser beaucoup de mémoire vive._

Suivez les étapes de l'installateur, si vous l'installez pour le développement, alors l'option Developer default sera votre meilleure option, elle installera également MySQL Workbench qui est un client GUI natif, vous évitant ainsi d'avoir à installer des outils web lents tels que PHPMyAdmin si vous n'êtes pas à l'aise avec l'utilisation du client en ligne de commande.

Une fois que tout est installé, le programme d'installation vous demandera quelques valeurs de configuration de base. Je vous recommande de désactiver l'option "Ouvrir le port du pare-feu pour l'accès au réseau", à moins que vous ne souhaitiez accéder à la base de données à partir d'une autre machine du réseau.

Définissez le mot de passe de la racine - s'il s'agit uniquement d'un outil de développement et que votre pare-feu bloque les connexions entrantes du réseau, il n'est pas nécessaire d'utiliser un mot de passe fort.

Enfin, vous pouvez désactiver l'inutile MySQL Notifier en cliquant avec le bouton droit de la souris sur l'icône de la barre des tâches, en allant dans Actions -> Options, puis en décochant l'icône de MySQL Notifier. Run at Windows Startup et appliquer. Vous économiserez ainsi quelques Mo de RAM et éviterez de ralentir votre machine au démarrage.

Et voilà, vous avez maintenant un serveur WAMP entièrement fonctionnel qui fonctionne comme un service et ne dépend d'aucun utilisateur (accessible même si personne n'est connecté).

Notez que je n'ai aucune idée de la sécurité de ceci, pour des besoins de développement je dirais que c'est assez sûr puisque votre pare-feu devrait bloquer les connexions entrantes à la fois pour Apache (port 80 et ou 443) et MySQL (port 3306).

Ceci a été testé sur une installation Windows 7, il devrait également fonctionner sur Vista, Windows 8 et éventuellement Windows Server 2008/2012 - n'hésitez pas à commenter et/ou à rétrograder si ce n'est pas le cas.

8voto

Jason Points 1025

PHP 7

Les instructions dans la réponse ci-dessus fonctionnent parfaitement en juillet 2017, cependant, si vous souhaitez utiliser PHP 7, vous devez ajouter les lignes suivantes à C:\Apache24\conf\httpd.conf au lieu de celles de cette réponse (qui ne fonctionnent que pour PHP 5) [Ajouter ce qui suit après tous les LoadModule lignes] :

LoadModule php7_module C:/PHP/php7apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Assurez-vous que tous les chemins d'accès sont corrects. Si vous n'avez pas php7apache2_4.dll dans votre répertoire PHP, vous avez probablement téléchargé le mauvais paquetage.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X