web-dev-qa-db-fra.com

Comment installer manuellement Apache, PHP et MySQL sur Windows?

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

44
user256743

Apache

Tout d'abord, je vous recommande de lire Notes spécifiques à la plate-forme d'Apache pour Windows - il explique certaines fonctionnalités spécifiques à Windows, telles que l'exécution en tant que service que vous ne possédez pas sur d'autres systèmes d'exploitation et que vous n'avez probablement jamais utilisé 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, vous pouvez 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, cela 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. La 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 dossier Apache24 à la racine de votre disque dur, de sorte que vous ayez un chemin comme 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écutez httpd.exe. Normalement, aucune erreur ne devrait être imprimée.

Si vous obtenez une boîte de dialogue d'erreur indiquant que MSVCR110.dll est manquant sur votre système, vous devez installer le fichier Visual C++ redistribuable pour Visual Studio 2012 - comme toujours, à l'invite, sélectionnez la version de bit appropriée: vcredist_x86.exe pour 32 Systèmes à bits et vcredist_x64.exe pour les systèmes 64 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 "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. Vous devriez ensuite 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é pour le moment.

Le pare-feu Windows peut vous inviter à 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 vous voyez une page disant 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 la commande Invite.

Si un avertissement vous empêche de déterminer le nom de domaine complet du système, corrigez-le en éditant C:\Apache24\conf\httpd.conf et en modifiant la variable ServerNameelle devrait déjà figurer dans un commentaire, décommentez-le et changez-la):

ServerName <yourhostname>

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

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.

Restreindre l'accès à Apache à localhost uniquement - facultatif

Si 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 Apache C:\Apache24\conf\httpd.conf, recherchez le bloc de répertoire par défaut <Directory "c:/Apache24/htdocs">.

À la fin, le cas échéant, il devrait y avoir une ligne Require all granted, ce qui signifie que tout le monde peut accéder à ce serveur. Faisons ce Require local qui autorise uniquement l'accès depuis la machine locale.

De plus, vous pouvez demander à 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 directive Listen (définie par défaut 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, redémarrez-le afin de prendre en compte nos modifications. Désormais, seul localhost est autorisé à accéder. Tous les autres utilisateurs obtiendront un 403 Forbidden.

PHP

Je vous suggère de lire la _ (officielle PHP documentation concernant son installation sur les systèmes Windows.

Téléchargez les derniers binaires PHP à partir de la page de téléchargement officielle PHP pour Windows ), choisissez la version thread-safe qui correspond à la version de votre installation Apache (version x86 pour 32 bits). , x64 pour 64 bits).

La version non thread-safe est uniquement utilisée en binaire CGI - plus d'infos ici .

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

Créez un dossier PHP 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 une erreur.

Dans C:\PHP, renommez php.ini-production ou php.ini-developmentselon votre choix) en php.ini.

Ouvrez ce fichier php.ini, recherchez extension_dir = "ext" et décommentez cette ligne (supprimez le premier ;). Ceci définit l'extension par défaut dir à ext (ce qui résout en C:\PHP\ext et évite d'avoir à ajouter le code ext/ au début du fichier manuellement, comme dans les versions précédentes de ce message.

Configurez maintenant Apache pour qu’il utilise PHP, en éditant C:\Apache24\conf\httpd.conf - après toutes les lignes LoadModule, ajoutez les éléments suivants:

(Ce qui suit concerne 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 PHP 5 seulement)

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>

Maintenant, essayez de démarrer Apache manuellement en ouvrant une invite de commande dans C:\Apache24\bin et en exécutant httpd.exe - si vous ne voyez aucune erreur, cela signifie que votre fichier de configuration est valide et que PHP correspond à le plus susceptible de fonctionner}.

Vous pouvez tester votre installation de PHP en créant un fichier comme info.php avec <?php phpinfo(); à l'intérieur et en allant à http://localhost/info.php - vous devriez voir pas mal d'informations sur votre système et votre installation de PHP. 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é.

Compositeur - facultatif

Composer est un outil de gestion des dépendances en PHP, à la manière d'un gestionnaire de paquets. Cela permet d'installer facilement PHP paquets et même des frameworks entiers.

Composer nécessite que l'extension PHP OpenSSL soit activée. Activez-la donc 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, 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, accédez à 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 il faut lire la nouvelle variable PATH définie par Compositeur) et tapez composer.

Vous devriez obtenir un logo Nice 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, comme php_mysqli ou php_pdo_mysql - Je recommande de les activer tous les deux.

Ouvrez le fichier de configuration 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 mysqli ou PDO .

MySQL

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 (regardez la date d'édition 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 la version de votre système le prend en charge pour tirer parti de plus de 3 Go de RAM , ce qui est assez important, car les serveurs de base de données ont tendance à utiliser beaucoup de RAM.

Suivez les étapes du programme d'installation. Si vous installez ceci pour le développement, le Developer default sera votre meilleure option. Il installera également MySQL Workbench, un client à interface graphique native, vous évitant ainsi de devoir installer des outils Web lents tels que en tant 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 case Run at Windows Startup et en l’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. Pour des raisons de développement, je dirais que c'est assez sûr, car votre pare-feu devrait bloquer les connexions entrantes pour Apache (port 80 et ou 443) et MySQL (port 3306).

Ceci a été testé sur une installation 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.

61
user256743

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 à 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 toutes les lignes LoadModule] :

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 sont corrects. Si vous n'avez pas php7Apache2_4.dll dans votre répertoire PHP, vous avez probablement téléchargé le mauvais paquet.

5
rahuldottech