Comment installer Apache avec le support PHP et le serveur MySQL sous Windows sans utiliser de progiciels prêts à l'emploi tels que WAMPServer ou XAMPP?
Tout d’abord, je vous recommande de lire les Notes spécifiques à la plate - forme d’Apache pour Windows; elles expliquent certaines fonctionnalités spécifiques à Windows, telles que l’exécution de services en tant que services que vous n’avez pas sur d’autres systèmes d’exploitation et que vous n’avez probablement jamais utilisées auparavant.
Comme indiqué dans ces notes spécifiques à la plate-forme, Apache ne fournit pas de fichiers binaires pour Windows. Toutefois, ils ont des liens vers plusieurs sites tiers fournissant des fichiers binaires, par exemple Apache Lounge .
Sur ce site Web, nous pouvons télécharger la version 32 bits (win32) ou la version 64 bits (Win64). Si votre système d’exploitation est à 64 bits, vous devez toujours essayer d’installer des versions 64 bits du logiciel. Vous devrez également utiliser des modules 64 bits, ce qui signifie que si vous ne possédez qu'un module 32 bits, téléchargez Apache 32 bits.
Voici la version que j'ai utilisée pour écrire ceci: Apache 2.4.10 Win64 . Dernière version à laquelle cette réponse a été mise à jour pour la dernière fois: Apache 2.4.38 Win64 (regardez la date d'édition au bas de l'article).
Une fois téléchargé, extrayez simplement le Apache24
dossier à la racine de votre disque dur, de sorte que vous ayez un chemin similaire à 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 C:\Apache24\bin
et exécutez-le httpd.exe
, normalement, il ne devrait pas imprimer d'erreur.
Si vous obtenez une boîte de dialogue d'erreur indiquant qu'il MSVCR110.dll
manque à votre système, vous devez installer Visual C ++ Redistributable pour Visual Studio 2012 - comme toujours, lorsque vous y êtes invité, sélectionnez la version de bit appropriée: vcredist_x86.exe
pour les systèmes 32 bits et vcredist_x64.exe
pour 64 -Les bits.
Si vous obtenez une erreur indiquant qu'elle ne peut pas se lier au port 80, vérifiez si une autre application utilise ce port. De plus, Skype est connu pour utiliser les ports 80 et 443 par défaut. Décochez la case "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, puis vous devriez pouvoir démarrer Apache sans problème.
Un avertissement comme Could not reliably determine the server's fully qualified domain name
peut être ignoré pour le moment.
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 domestique et professionnel, mais pas sur les réseaux publics / non fiables.
Ensuite, ouvrez un navigateur et accédez à http://localhost
, si une page indique que It works !
cela signifie que votre installation 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 êtes averti de ne pas être en mesure de déterminer le nom de domaine complet du système, corrigez-le en modifiant C:\Apache24\conf\httpd.conf
et en modifiant la ServerName
variable (elle devrait déjà figurer dans un commentaire, décommentez-la et changez-la):
ServerName <yourhostname>
Remplacez- <yourhostname>
le par le nom d'hôte du système ou par localhost
.
Enfin, si vous souhaitez exécuter le serveur automatiquement au démarrage du système (même si personne ne se connecte), vous devez l'exécuter en tant que service - dans une nouvelle invite de commande avec privilèges élevés (en tant qu'administrateur), tapez:
httpd.exe -k install
Ça y est, vous avez maintenant un nouveau service dans Services (Windows + R puis tapez "services.msc" puis appuyez sur Entrée) nommé "Apache2.4" que vous pouvez contrôler comme tout autre service Windows.
localhost
uniquement - facultatifSi vous configurez ceci à des fins de développement, vous voulez vous assurer que personne d'autre que vous ne pouvez y accéder, votre pare-feu devrait déjà s'en charger, mais ajoutons un autre niveau de sécurité en disant à Apache d'accepter les demandes du serveur local. machine seulement.
Ouvrez le fichier de configuration d'Apache C:\Apache24\conf\httpd.conf
, recherchez le bloc de répertoire par défaut <Directory "c:/Apache24/htdocs">
.
À la fin, s'il y a lieu, il devrait y avoir une ligne Require all granted
, cela signifie que tout le monde peut accéder à ce serveur. Faisons ce Require local
qui permet uniquement l'accès depuis la machine locale.
En outre, vous pouvez indiquer à Apache de ne se lier qu'à l'interface de bouclage, même si votre pare-feu et les directives de contrôle d'accès mentionnées ci-dessus échouent, le serveur ne sera toujours pas ouvert à l'ensemble de l'internet.
Pour cela, localisez la Listen
directive (par défaut, elle est définie sur 80
) et modifiez-la comme suit:
Listen 127.0.0.1:80
Listen [::1]:80
La première ligne est explicite, la seconde est son équivalent IPv6, les crochets sont utilisés dans la notation IPv6 pour séparer l'adresse et le port.
Enregistrez le fichier, si vous exécutez déjà le serveur, puis redémarrez-le afin de prendre en compte nos modifications, et n’a maintenant plus localhost
accès qu’à un accès, tous les autres utilisateurs recevront un 403 Forbidden
.
Je vous suggère de lire la documentation officielle de PHP concernant son installation sur les systèmes Windows.
Téléchargez les derniers fichiers binaires PHP à partir de la page de téléchargement officielle de PHP pour Windows , choisissez la version adaptée aux threads qui correspond à la version bit de votre installation Apache (x86 pour 32 bits, x64 pour 64 bits).
La version non-thread-safe est uniquement utilisée en binaire CGI - plus d'informations ici .
La version que j'ai utilisée est la suivante: PHP 5.6.2 Thread Safe de VC11 x64 . Dernière version lorsque cette réponse a été mise à jour pour la dernière fois: PHP 7.3.3 Thread Safe pour VC15 x64 (regardez la date d'édition au bas de l'article).
Créez un PHP
dossier vide à la racine de votre disque dur et extrayez l'archive précédemment téléchargée, vous devriez avoir un chemin tel que C:\PHP\ext
, sinon vous avez fait quelque chose de mal.
Dans C:\PHP
, renommez le php.ini-production
ou php.ini-development
(selon ce que vous voulez) php.ini
.
Ouvrez ce php.ini
fichier, recherchez extension_dir = "ext"
et décommentez cette ligne (supprimez la première ;
). Ceci définit le répertoire d'extension par défaut sur ext
(ce qui résout C:\PHP\ext
et évite d'avoir à ajouter ext/
manuellement tous les chemins des extensions comme dans les versions précédentes de ce message.
Configurez maintenant Apache pour qu’il utilise PHP, en le modifiant C:\Apache24\conf\httpd.conf
- après toutes les LoadModule
lignes, ajoutez ce qui suit:
(La suite est pour PHP 7 seulement )
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>
(Ce qui suit concerne uniquement PHP 5 )
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 C:\Apache24\bin
et en cours d'exécution httpd.exe
. Si vous ne voyez aucune erreur, cela signifie que votre fichier de configuration est valide et que PHP fonctionne probablement .
Vous pouvez tester votre installation PHP en créant un fichier comme info.php
avec <?php phpinfo();
dedans et aller dans http://localhost/info.php
- vous devriez voir pas mal d'informations sur votre système, votre installation PHP et tous ses modules. Si vous obtenez autre chose comme une "erreur de serveur interne", 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 effectuée avec le serveur déjà démarré.
Composer est un outil de gestion des dépendances en PHP, à la manière d'un gestionnaire de paquets. Cela permet d'installer facilement des paquets PHP et même des frameworks entiers.
Composer nécessite que l'extension PHP OpenSSL soit activée. Activez-la donc 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, décommentez simplement cette ligne.
Téléchargez maintenant l'installateur Windows de Composer à partir de leur page de téléchargement - ou utilisez simplement ce lien direct .
Suivez les instructions. Lorsque vous êtes invité à indiquer le chemin d'accès à PHP, recherchez C:\PHP
et sélectionnez php.exe
.
Ça y est, Composer est maintenant installé à l’échelle du système et peut être utilisé n’importe où. Vous pouvez l’essayer en ouvrant simplement une nouvelle invite de commande (vous ne pouvez pas en utiliser une qui est déjà ouverte, car elle doit lire la nouvelle PATH
variable définie par Composer. installateur) et le type composer
.
Vous devriez obtenir un joli logo ASCII-art et quelque chose comme ceci:
Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28
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, comme php_mysqli
ou php_pdo_mysql
- je vous recommande de les activer toutes les deux.
Ouvrez le fichier de configuration de PHP C:\PHP\php.ini
dans votre éditeur de texte et recherchez php_mysqli
ou php_pdo_mysql
- ils devraient déjà être là, décommentez-les.
C'est fait, vous pouvez maintenant accéder à n'importe quelle base de données MySQL en utilisant soit, mysqli
soit PDO
.
Sur la page de téléchargement du programme d'installation MySQL, téléchargez le programme d'installation Web mysql-installer-web-community-xxxxx.msi
.
J'ai utilisé mysql-installer-web-community-5.6.21.1.msi. La dernière version de cette réponse date de la dernière mise à jour: mysql-installer-web-community-8.0.15.0.msi (consultez la date de modification au bas de l'article).
Le programme d’installation installera automatiquement la version appropriée (32 bits ou 64 bits) en fonction de votre système, même si la version bit de MySQL ne doit pas nécessairement correspondre à celle d’Apache et de PHP, mais il est toujours avantageux d’utiliser la version 64 bits de votre ordinateur. Le système le prend en charge pour tirer parti de plus de 3 Go de RAM , ce qui est très important, car les serveurs de bases de données ont tendance à utiliser beaucoup de RAM.
Suivez les étapes du programme d'installation. Si vous installez ceci pour le développement, alors ce Developer default
sera votre meilleure option. Il installera également MySQL Workbench, un client d'interface graphique natif, vous évitant ainsi d'avoir à installer des outils Web lents tels que PHPMyAdmin si vous n'êtes pas à l'aise avec le 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 "Ouvrir le port du pare-feu pour l'accès au réseau", sauf si vous souhaitez accéder à la base de données à partir d'un autre ordinateur du réseau.
Définissez le mot de passe root - si c'est uniquement à des fins de développement et que votre pare-feu bloque les connexions entrantes du réseau, un mot de passe fort n'est pas nécessaire.
Enfin, vous pouvez désactiver le Notifier inutile MySQL 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 la Run at Windows Startup
case à cocher et en appliquant. Cela vous permettra d'économiser quelques Mo de RAM et d'éviter de ralentir votre ordinateur au démarrage.
Et voilà, vous avez maintenant un serveur WAMP entièrement fonctionnel qui fonctionne en tant que 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 cette opération. Aux fins du développement, je dirais que c'est assez sûr, car votre pare-feu doit bloquer les connexions entrantes pour Apache (ports 80 et ou 443) et MySQL (port 3306).
Ceci a été testé sur une installation de Windows 7, il devrait également fonctionner parfaitement sous Vista, Windows 8 et éventuellement Windows Server 2008/2012 - n'hésitez pas à commenter et / ou à voter si ce n'est pas le cas.
MSVCR110.dll
erreur est apparue (sur la version actuelle d'Apache), j'ai fini par installer Visual SP ++ Redistributable 2010 SP1. Ensuite, j'ai eu une autre erreur à propos du fichierVCRUNTIME140.dll
, qui m'a obligé à installer Visual C ++ Redistributable pour Visual Studio 2015.PHP 7
Les instructions de la réponse ci-dessus fonctionnent parfaitement à compter de juillet 2017. Toutefois, si vous souhaitez utiliser PHP 7, vous devez ajouter les lignes suivantes à la
C:\Apache24\conf\httpd.conf
place de celles de cette réponse (qui ne fonctionnent que pour PHP 5) [Ajoutez le suivant après toutes lesLoadModule
lignes] :Assurez-vous que tous les chemins sont corrects. Si vous n'avez pas
php7apache2_4.dll
dans votre répertoire PHP, vous avez probablement téléchargé le mauvais paquet.la source