Licence CC BY-NC-SA

… ou pour des besoins spécifiques

Dernière mise à jour :

Nous avons vu deux-trois choses pour pouvoir utiliser notre serveur sans trop de casse-têtes jusqu’à maintenant. Mais le but d’un serveur de développement, c’est d’être le plus proche possible d’un environnement de production.
Du coup, la version de PHP n’est pas la même, ou la version de MySQL. Faut-il installer une autre version de WAMP pour cela ?

Certains frameworks utilisent aussi PHP en ligne de commandes. Comment mettre ça en place ?

Ce chapitre est pensé pour vous qui vous posez ces questions.  :)

PHP en ligne de commandes

Les frameworks actuels font volontiers usage de la ligne de commandes pour lancer des scripts PHP. Seulement, WAMP ne fait pas de réglage à ce niveau, car il est initialement prévu pour une utilisation avec Apache. Il nous faut donc pallier cela. ;)

Rendez-vous d’abord dans le panneau de configuration, puis la rubrique Système (sous Windows 7 et plus récent, vous pouvez utiliser le raccourci ⊞ + Pause). Dans la partie de gauche de la fenêtre, vous trouverez une rubrique Paramètres système avancés, pour laquelle Windows vous demandera d’être administrateur pour y accéder.

S’ouvre alors une fenêtre avec une série d’onglets. Si ce n’est pas celui qui est déjà choisi, cliquez sur Paramètres système avancés une fois de plus. Dans cet onglet, en bas à droite, se trouve un bouton Variables d’environnement. Cliquez dessus pour ouvrir encore une nouvelle fenêtre.

Cette dernière est séparée en deux parties : les variables pour l’utilisateur en haut, et les variables système, partagées entre tous les utilisateurs, en dessous. C’est parmi celles-ci qu’il vous faut trouver Path et la sélectionner. Une fois ceci fait, cliquez sur Modifier…. Encore une popup qui s’ouvre — ce n’est pas pour rien que le système d’exploitation s’appelle Windows.  :D

A partir de là, la suite dépend de votre version de Windows et surtout de ce que contient cette nouvelle fenêtre .

La fenêtre comporte une série de lignes à gauche, et des boutons à droite

Celui qui nous intéresse, c’est Nouveau. Après avoir cliqué dessus, le curseur va se placer en bas de liste a gauche, et vous n’aurez qu’à coller le chemin vers l’emplacement de PHP, soit %WAMPDIR%\bin\php\php%PHP_VERSION%\1, 2

La fenêtre comporte deux champs texte l’un sous l’autre

On va surtout s’intéresser à celui du bas.

Il ne faut pas changer quoi que ce soit dans le premier champ, sans quoi vous risquez de devoir utiliser un DVD d’installation de votre système d’exploitation pour le réparer, et certains programmes pourraient ne plus fonctionner correctement malgré cela.

On peut voir que ce qu’il contient est une série de chemins, séparés entre eux par des points-virgules ;. Ce sont en fait des chemins de dossiers dans lesquels Windows vérifie, quand lui ou un programme doit lancer une commande, que les composants nécessaires s’y trouvent. Et nous, tout ce qu’il nous faut, c’est d’y ajouter le chemin vers l’exécutable de PHP.

Pour ce faire, il suffit de :

  • ajouter un point-virgule tout à la fin de la liste

    N’ajoutez aucune espace avant ni après le point-virgule

  • coller le chemin vers le dossier où se trouve PHP, soit %WAMPDIR%\bin\php\php%PHP_VERSION%\3, 4

Ensuite de quoi, fermez progressivement les diverses fenêtres en cliquant sur Appliquer quand c’est possible, sinon sur OK.

Vous devriez pouvoir utiliser PHP en ligne de commandes désormais. Ouvrez l’invite de commandes et tapez php -v : le numéro de la version de PHP devrait s’afficher alors.

Si vous aviez déjà l’invite de commandes ouverte quand vous aviez modifié les variables d’environnement, il vous faut la fermer et la rouvrir. Les programmes qui sont en cours d’exécution lors de ce genre de modifications ne peuvent en tenir compte.

La ligne de commandes n’utilise pas le même fichier php.ini que celui pour Apache. Or, c’est ce dernier qui est modifié quand vous utilisez le menu de WAMP pour faire la configuration de PHP.
Il vous faudra comparer les deux fichiers pour activer les mêmes extensions et paramétrer les mêmes valeurs (fuseau horaire, temps maximal d’exécution, limite de mémoire allouée, etc.).

Il est cependant à noter qu’il doit y avoir des différences entre les deux fichiers de configuration : la ligne de commande utilise des points que le module Apache ne sert pas, et vice-versa. Si vous ne savez pas quoi faire de certaines différences, laissez-les, c’est plus sage.

Depuis la version 3.1.2, un message s’affiche quand une version de PHP que WAMP peut utiliser est renseignée pour la ligne de commandes. Ceci est en prévision d’un potentiel conflit de configuration entre la version utilisée en interne par WAMP et celle de la ligne de commandes5.
Pour désactiver ce message, effectuez un clic droit sur l’icône WAMP dans la barre de statut, puis pointez > Paramètres Wamp et cliquez sur Ne pas vérifier PATH.

cURL et HTTPS

Si vous avez besoin de PHP en ligne de commandes, c’est probablement parce que vous allez utiliser composer. Vous avez peut-être déjà tenté de lancer une commande, et vous vous retrouvez avec le message suivant.

1
cURL error 60: SSL certificate problem: unable to get local issuer certificate
Erreur quand cURL ne peut pas vérifier une connexion sécurisée

En fait, le problème est que cURL tente de se connecter quelque part en HTTPS, mais qu’il n’arrive pas à vérifier l’authenticité du certificat pour la connexion sécurisée. Pour que cela lui soit possible, il faut lui fournir une base de données qui lui permettra de faire la validation.
Dans un premier temps, il faut télécharger cette base de données, qui se présente sous la forme d’un seul fichier. Vous pouvez le récupérer à l’adresse https://curl.haxx.se/ca/cacert.pem. Enregistrez-le quelque part où vous ne risquez pas de l’effacer, nous vous proposons de créer un dossier %WAMPDIR%\ssl6 pour cela.

Ensuite, ouvrez le fichier php.ini avec votre éditeur de texte favori, et recherchez les lignes mentionnées ci-dessous.

1
2
3
4
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
;curl.cainfo =
La partie de php.ini qui permet de renseigner la base de données

Dé-commentez la dernière ligne, et ajoutez à la fin de celle-ci le chemin du fichier que vous avez téléchargé. C’est prêt ! :magicien:


  1. %WAMPDIR% est à remplacer par le chemin de votre installation de WAMP 

  2. %PHP_VERSION% est à remplacer par le numéro de version complet de PHP, avec les points 

  3. %WAMPDIR% est à remplacer par le chemin de votre installation de WAMP 

  4. %PHP_VERSION% est à remplacer par le numéro de version complet de PHP, avec les points 

  5. Pour plus d’information, voir ce sujet sur le forum officiel 

  6. %WAMPDIR% est à remplacer par le chemin de votre installation de WAMP 

WAMP, ses modules, et Microsoft Visual C++

Comme expliqué lors de l’installation, WAMP n’est pas le nom de la solution installée, mais un acronyme qui désigne un environnement : Windows Apache MySQL et PHP. Du coup, il paraît facile de comprendre que WampServer possède une architecture modulaire.

Cette architecture permet d’avoir plusieurs versions des différents composants. Vous pouvez donc avoir autant de versions de PHP que nécessaire, autant de versions de MySQL, voire autant de versions d’Apache.

Ces différentes versions sont téléchargeables à divers endroits, mais s’il y a un point dont il faut tenir compte, c’est la version compatible de Microsoft Visual C++.

Lassé de devoir réexpliquer quelle version est nécessaire pour les diverses versions de WAMP ou des add-ons, le mainteneur actuel fait désormais installer au moins 5 versions, alors que dans la pratique, l’ordinateur n’en utilisera probablement pas plus que trois pour faire fonctionner WAMP. L’avantage étant que si vous voulez de nouveaux add-ons, vous ne devriez pas avoir à installer quoi que ce soit d’autre.  ^^

Les versions de Microsoft Visual C++ sont souvent mentionnées sur les pages de téléchargement, et parfois aussi dans le nom de l’archive du module que vous téléchargez. Seulement, comme Microsoft Visual C++ est long à écrire, c’est souvent raccourci en Visual C++ suivi de l’année, ou abrégé VC, suivi d’un numéro correspondant à une version. Pour ne pas faire simple, même si l’on parle de Microsoft Visual C++ 2012, ce ne sera pas VC2012 ou VC12, mais VC11…

Afin de vous simplifier la tâche, voici un tableau avec la correspondance entre différentes versions abrégées et leur version complète. Les versions de PHP sont mentionnées d’après les informations de la page windows.php.net/download/

Code de version Nom complet Fichier signalé manquant Téléchargement
VC15 (mise à jour de VC14, PHP 7.0, 7.1, 7.2, WAMP 3.x) Microsoft Visual C++ 2017 VCRUNTIME140.dll, msvcr140.dll x86, x64
VC14 (obsolète, utiliser la mise à jour ci-dessus) Microsoft Visual C++ 2015 (update 3) Voir la ligne au-dessus
VC12 update 5 (WAMP 3.x) Mise à jour pour Visual C++ 2013 et Visual C++ Redistributable Package x86 et x64 (choisir dans la page)
VC12 (WAMP 3.x) Microsoft Visual C++ 2013 msvcr120.dll (msvcr130.dll) x86 et x64 (choisir dans la page)
VC11 (WAMP 2.5 et 3.x, PHP 5.5, 5.6) Microsoft Visual C++ 2012 (update 4) msvcr110.dll x86 et x64 (choisir dans la page)
VC10 (WAMP 3.x) Microsoft Visual C++ 2010 SP1 msvcr100.dll x86, x64
VC9 (WAMP 2.4 et 3.x, PHP 5.3, 5.4) Microsoft Visual C++ 2008 msvcr90.dll x86, x64
KB# (spécifique à votre version de Windows) Mise à jour de sécurité du Runtime C universel api-ms-win-crt-runtime-l1-1-0.dll Choisir dans la page pour votre version exacte de Windows
Abréviations et noms complets des versions de Microsoft Visual C++

Ainsi, faites attention au nom de l’archive du module que vous téléchargez s’il comporte une partie VC#, et regardez aussi ce qui est expliqué sur la page d’où vous téléchargez le module.

Notez que, comme les versions de Visual C++ sont utilisées par beaucoup de programmes sous Windows, il est très possible d’avoir déjà une version compatible de Visual C++ d’installée. Néanmoins, il est conseillé de réinstaller les versions ci-dessus en veillant bien à utiliser le clic droit > Exécuter en tant qu’administrateur, et si proposé, de réparer les installations existantes.

Ne prenez SURTOUT PAS juste un fichier manquant pour le placer directement dans C:\Windows\system32. Vous n’avez aucune assurance que le fichier soit le bon ni qu’il ne fasse pas autre chose que ce qu’il devrait, sans compter que ce ne sera pas nécessairement le seul fichier à aller récupérer.
 Toute manipulation qui vous fait toucher aux dossiers système est à considérer comme douteuse — ce n’est pas pour rien que Windows vous demande une validation quand vous y accédez.

A vos risques et périls.

Plusieurs versions de PHP

L’un des atouts intéressants de WAMP est que l’on peut, avec la même installation, avoir plusieurs versions de PHP, afin de travailler avec une version qui correspond à celle qui sera utilisée en production. En effet, WAMP 2.5 est livré avec PHP 5.5, qui n’est pas disponible chez tous les hébergeurs. Il serait donc intéressant de pouvoir utiliser la même version que celle qui sera utilisée en production.

Télécharger les binaires pour Windows

Dans un premier temps, il vous faudra ce qu’on appelle les binaires de PHP pour la version que vous souhaitez.
Les binaires sont simplement des fichiers compilés et prêts à l’utilisation, au contraire des sources.

Comme dans PHP il y a plusieurs extensions, cela fait beaucoup de fichiers, et une arborescence à respecter. C’est pourquoi vous téléchargerez très probablement une archive zip.

Vous pouvez les télécharger à divers endroits, néanmoins nous vous conseillons deux sites.

PHP for Windows

Y accéder

Le site officiel, d’où vous pouvez télécharger tout un éventail de versions de PHP, bêtas comme stables. C’est le site à surveiller pour être au courant des sorties de nouvelles versions que vous pourrez utiliser avec WAMP.

Néanmoins, la page de téléchargement peut paraître déroutante : rien que pour PHP 5.6, il n’y a pas moins de 4 versions à choix ! :o
C’est un peu plus simple pour PHP 5.4 et 5.3, où il n’y a que 2 versions. Laquelle choisir ?

Parmi les versions proposées, vous verrez qu’elles portent la mention Thread Safe ou Non Thread Safe (parfois abrégées TS et NTS). Sans entrer dans les détails, ce qu’il nous faut, c’est une version Thread Safe, Apache gérant le multithreading.

Ensuite, choisir entre x86 et x64 dépend de l’installation de WAMP que vous avez faite.

Une installation x64 de WAMP vous oblige à avoir des versions x64 de PHP. Cela ne fonctionne pas comme Windows avec lequel vous pouvez installer des programmes x86 qui fonctionnent alors que vous avez un Windows x64.

Mais alors, je fais comment pour PHP 5.4 et/ou 5.3 x64 ? :'(

Je vous avais dit qu’il valait mieux utiliser une version x86 ! :p
Vous pourrez néanmoins trouver votre bonheur sur le site suivant.

Les forums d’Apache Lounge

Y accéder

Ce site a l’avantage de proposer diverses versions de PHP x86 comme x64, et notamment pour PHP 5.3 et 5.4, alors que ce n’est que depuis PHP 5.5 que PHP est fourni de manière officielle pour Windows avec architecture x64.
Autre point intéressant : ces binaires sont souvent compilées pour des versions avancées de Microsoft Visual C++, donc évite d’avoir à installer une énième (et vieille) version des packages.

Les désavantages sont que les nouvelles versions de PHP ne s’y trouvent pas dès leur sortie, et les différentes extensions de PHP ne sont pas nécessairement les mêmes versions que pour PHP officiel — même si ce dernier point porte peu souvent à conséquence.

A vous de trouver dans le forum les sujets qui proposent les versions qui vous intéressent.
Là aussi, vous pouvez avoir plusieurs choix pour chaque version. Certaines comportent NTS dans leur nom et ne sont donc pas à prendre.

Ne vous laissez pas dérouter par les éventuelles mentions Win32 et Win64 dans le nom des fichiers, ce n’est pas l’indication qu’il s’agit d’une version Windows 32 ou 64 bits. Seules les mentions x86 et x64 sont à prendre en compte à ce propos.

Installer la nouvelle version de PHP

Une fois l’archive téléchargée, il faut l’extraire dans un dossier particulier.

Si vous vous êtes déjà un peu promené dans le dossier d’installation de WAMP, vous aurez remarqué que les fichiers relatifs à PHP (ainsi qu’à MySQL ou à Apache) sont dans des chemins de ce genre : %WAMPDIR%\bin\php\php5.5.121.
Imaginons maintenant que vous ayez téléchargé PHP 5.6.31. Il vous faudra donc extraire l’archive dans le dossier %WAMPDIR%\bin\php\php5.6.312.
Une fois l’archive extraite, vous devriez donc avoir les dossiers suivants (entre autres) :

  • %WAMPDIR%\bin\php\php5.6.31\dev3
  • %WAMPDIR%\bin\php\php5.6.31\ext4
  • %WAMPDIR%\bin\php\php5.6.31\extras5

Maintenant, il ne suffit pas d’avoir extrait l’archive au bon endroit : WAMP a besoin de deux autres fichiers pour pouvoir fonctionner avec cette nouvelle version de PHP.

Le fichier wampserver.conf

Ce fichier contient un bref script PHP qui permet à WAMP de configurer correctement la liaison avec Apache. En règle générale, vous pouvez le copier depuis une version de PHP qui fonctionne déjà avec WAMP et la coller dans le dossier où vous avez extrait l’archive, soit dans %WAMPDIR%\bin\php\php5.6.316.

Avec les nouvelles versions de PHP, il y a quelque chose à modifier. Les binaires de PHP étaient fournies avec un fichier php7apache2_4.dll qui semble avoir été renommé en php7.dll. Deux options s’offrent à vous :

  • renommer le fichier php7.dll en php7apache2_4.dll et copier-coller le fichier wampserver.conf depuis une autre version de PHP 7 ;
  • changer la ligne 10 du fichier wampserver.conf repris depuis une autre version de PHP 7, afin de remplacer cette fois php7apache2_4.dll par php7.dll.

Ceci à partir de PHP 7.0.24 et 7.1.10.

Les fichiers php.ini

WAMP a pour particularité d’utiliser deux ou trois fichiers php.ini

  1. %WAMPDIR%\bin\php\php5.6.31\php.ini7 : c’est celui qui sera pris en compte par PHP en ligne de commandes. Vous pouvez vérifier son emplacement avec la commande php --ini.
  2. %WAMPDIR%\bin\php\php5.6.31\phpForApache.ini8 : c’est la sauvegarde de la configuration de PHP pour Apache.
  3. %WAMPDIR%\bin\apache\apache2.4.9\bin\php.ini9
    Sous WAMP 2.5 et plus, c’est un lien symbolique vers le N° 2. Avec les versions précédentes, c’est une copie du N° 2. Ce dernier fichier est créé lors du changement de version de PHP ou au premier démarrage. C’est donc la version qui fait foi pour le module Apache, celui qui est utilisé le plus souvent quand on accède par HTTP au serveur, et de facto celle qui est mentionnée dans phpinfo.

Il est intéressant de vérifier quel fichier est réellement pris en compte dans la ligne de commandes et dans phpinfo, surtout si vous êtes passé d’une autre solution à WAMP, ou que vous l’avez mis à jour, et que vous avez des problèmes.

Vous n’avez pas à aller dupliquer votre fichier php.ini dans le répertoire d’Apache, mais il vous faut cependant créer phpForApache.ini.

Certaines distribution de PHP sont fournies avec plusieurs fichiers de configuration, notamment parfois php.ini et php-cli.ini, voire aussi php-apache.ini. PHP sait de lui-même que :

  • php-cli.ini est pour la ligne de commandes
  • php-apache.ini est pour Apache

Mais il faut cependant copier php-apache.ini et renommer la copie en phpForApache.ini pour que WAMP fonctionne correctement.

Eviter les incompatibilités avec ICU sous WAMP 2.5 (de 2.5.0 à 2.5.4 compris)

Plus le temps passe, et plus les versions de PHP comme de ses extensions s’améliorent. Mais cela implique aussi que certaines versions des extensions finissent par être considérées comme incompatibles avec les versions de PHP, et vice-versa.
D’autre part, certaines extensions de PHP ne sont pas uniquement un fichier DLL placé dans le répertoire ad-hoc, mais dépendent elle-mêmes de bibliothèques externes qui évoluent aussi. Par exemple, il y a l’extension intl, qui se base sur la bibliothèque ICU.

Sous Windows, cette dernière se présente sous une série de fichiers DLL dont le nom commence par icu, suivi de plusieurs caractères, et d’un numéro de version. Ces fichiers se trouvent dans le même dossier que le fichier php.ini, mais c’est Apache qui en a besoin.
Seulement, Windows n’ira chercher les fichiers là où ils se trouvent uniquement si la version de PHP avec laquelle ils ont été fournis est celle que vous utilisez en ligne de commandes. Or, quand vous avez plusieurs versions de PHP, il n’est pas garanti que la bibliothèque ICU pour la version de PHP en ligne de commandes soit compatible avec la version de l’extension intl…
Les concepteurs de WAMP ont pensé à cela, et ont prévu de quoi gérer les différentes versions d’ICU.

Pour éviter aux utilisateurs de WAMP d’avoir à se soucier de fichiers qu’il faudrait déplacer pour faire fonctionner leur serveur ainsi que pour éviter de dédoubler des fichiers, WAMP créé des raccourcis vers ceux-ci dans le dossier d’Apache. La liste des fichiers à traiter ainsi est placée dans le code de %WAMPDIR%\scripts\config.inc.php10, et se présente initialement comme suit :

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
$phpDllToCopy = array (
    'icudt52.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.6.a2
    'icuin52.dll',
    'icuio52.dll',
    'icule52.dll',
    'iculx52.dll',
    'icutest52.dll',
    'icutu52.dll',
    'icuuc52.dll',
    'icudt51.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.5.6
    'icuin51.dll',
    'icuio51.dll',
    'icule51.dll',
    'iculx51.dll',
    'icutest51.dll',
    'icutu51.dll',
    'icuuc51.dll',
    // …
Extrait de %WAMPDIR%\scripts\config.inc.php11 fourni avec WAMP 2.5.0

Comme vous pouvez le constater, il s’agit vraiment de la liste des fichiers. Il est possible de permettre de les gérer avec plus de facilité. Plutôt que d’avoir à ajouter 8 lignes à chaque nouvelle version d’ICU, vous pouvez remplacer les lignes 63 à 111 par les suivantes, plus aisément maintenables et extensibles :

 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
<?php
$icu = array(
    'number' => array(
        '54', // PHP 5.6.4
        '53', // PHP 5.6
        '52', // PHP 5.6a2
        '51', // PHP 5.5.6
        //'50', // PHP 5.5
        //'49', // PHP 5.3 / 5.4
    ),
    'name' => array(
        'icudt',
        'icuin',
        'icuio',
        'icule',
        'iculx',
        'icutest',
        'icutu',
        'icuuc',
    ),
);
$php_icu_dll = array();
foreach($icu['number'] as $icu_number) {
    foreach($icu['name'] as $icu_name) {
        $php_icu_dll[] = $icu_name . $icu_number . '.dll';
    }
}

$phpDllToCopy = array_merge(
    $php_icu_dll,
    array (
        'libeay32.dll',
        'libsasl.dll',
        'libssh2.dll', // PHP 5.5.17
        'php5isapi.dll',
        'php5nsapi.dll',
        'ssleay32.dll',
        'php5ts.dll',
    ),
);
Remplacement pour la gestion des versions de la bilbiothèque ICU. Les lignes en surbrillance sont les ajouts de versions d’ICU pour les versions plus récentes de PHP que la 5.5.12 fournie avec WAMP 2.5.0

Ainsi, dès qu’une nouvelle version d’ICU est fournie avec PHP, vous n’avez qu’à ajouter le numéro de version dans la liste, entre les lignes 64 et 65. Si de plus un nouveau fichier est ajouté, alors vous pouvez mettre son nom (sans la partie du numéro de version) à la suite de la ligne 80.

Voilà, il vous suffit maintenant d’apporter les modifications souhaitées aux fichiers de configuration de PHP, puis de redémarrer WAMP.
Si vous cliquez sur l’icône de WAMP dans la barre de statut et que vous allez sur PHP > version, vous devriez avoir 5.4.45 en plus de 5.5.12. Choisissez cette version. WAMP va redémarrer de lui-même. Rendez-vous à l’adresse http://localhost/?phpinfo pour vérifier que tout va bien, et que c’est bien PHP 5.4.45 qui fonctionne désormais.

Pour repasser à une autre version de PHP, même procédé : clic sur l’icône de WAMP dans la barre de statut > PHP > Version et choisissez-en une autre.
Vous avez maintenant plusieurs versions de PHP avec une seule installation de WAMP ! :magicien:

Mettre à jour vers une révision plus récente

Moi j’aimerais juste avoir la dernière version de PHP, la 7.2.1, je n’ai plus besoin des autres, je peux les supprimer ?

Oui, mais il faut commencer par installer la nouvelle version comme expliqué ci-dessus et passer à cette version.

Le noyau de WAMP se base sur PHP pour fonctionner en interne. Il lui faut donc savoir quelle version il doit utiliser ainsi que où la trouver, et la seule qu’on puisse être sûr qu’elle soit présente dès l’installation et donc dont on sait où elle se trouve, c’est celle qui est fournie avec. ;)
Mais comme tout bon programmeur, l’équipe qui travaille sur WAMP a prévu un et un seul endroit où on peut changer très simplement la version à utiliser.

Depuis WampServer 3.1.1, il existe un menu pour ce faire : clic droit sur l’icône de WampServer > Outils > Changer version PHP CLI.
Avec une version moins récente, il faut effectuer la modification ci-dessous alors que WampServer est totalement arrêté.

Rendez-vous dans le dossier d’installation de WAMP, et ouvrez le fichier wampmanager.conf avec un éditeur de texte. Malgré l’extension, c’est le même format de fichier INI que celui utilisé pour configurer PHP et MySQL.

Recherchez alors les lignes suivantes :

1
2
[php]
phpCliVersion = "7.2.1"
Bref extrait du contenu du fichier wampmanager.conf

Vous l’aurez compris, il suffit de changer le vieux numéro de version (5.6.31 avec WAMP 3.1.0) par la version que vous souhaitez. :magicien:
Vous n’avez pas trop besoin de vous soucier d’éventuels problèmes d’incompatibilité, les scripts de WAMP sont très basiques, et n’utilisent pas de fonctions très avancées.

Si vous aviez prévu une version de PHP en ligne de commandes, assurez-vous qu’elle n’est pas parmi celles que vous allez supprimer.

Il n’est malheureusement pas possible de changer facilement la version de PHP en ligne de commandes. Vous êtes obligés de passer par la modification de la variable d’environnement PATH.


  1. %WAMPDIR% est à remplacer par le dossier d’installation de WAMP 

  2. Idem 

  3. Idem 

  4. Idem 

  5. Idem 

  6. Idem 

  7. Idem 

  8. Idem 

  9. Idem 

  10. Idem 

  11. Idem 

  12. Idem 

Plusieurs versions de MySQL

Vous vous en doutez, s’il y a moyen d’avoir plusieurs versions de PHP avec WAMP, il y a aussi moyen d’avoir plusieurs versions de MySQL. ;)
Cependant, c’est un peu plus difficile à mettre en place, surtout si vous souhaitez utiliser la version fournie avec WAMP 2.5 (MySQL 5.6.17) avec une version 5.5 et partager les bases de données. Nous allons voir cela en temps utile.

Installer la nouvelle version

Pour trouver la version qui vous plaît, rien de mieux que le site officiel. ;)
Par défaut, c’est la toute dernière version qui est proposée au téléchargement. Pour pouvoir choisir une autre version, cliquez sur Looking for previous GA versions?, à droite de la liste des OS supportés. L’affichage va changer, et une liste des versions disponibles va s’afficher. Une fois la version choisie, après un bref rechargement partiel de la page, la liste des fichiers à télécharger va s’actualiser, et vous verrez au minimum 4 téléchargements possibles pour une version.

Ne prenez PAS les MSI Installer, qui sont prévus pour des installations séparées des composants d’un serveur.
Prenez l’archive ZIP correspondant à votre installation de WAMP, x86 ou x64.

Le site est ainsi pensé pour que vous pensiez avoir à vous enregistrer afin de télécharger quelque chose, mais il n’en est rien : en bas de la page qui s’affiche après que vous ayez choisi votre téléchargement (là où il vous est proposé de vous authentifier ou vous inscrire), vous verrez le texte No thanks, just start my download. Cliquez dessus pour que commence votre téléchargement.

Une fois cette archive téléchargée, extrayez-là simplement dans le répertoire %WAMPDIR%\bin\mysql\mysql%VERSION%\1, en remplaçant %VERSION% par le numéro de version (avec les points) de MySQL que vous voulez installer.

On va encore s’occuper de la configuration de la version de MySQL. Comme point de départ, on va utiliser le fichier %WAMPDIR%\bin\mysql\mysql5.6.17\my.ini2 et le copier-coller dans le dossier de la nouvelle version, et ouvrez cette copie.

Remplacez toutes les occurrences de 5.6.17 par la version que vous venez d’installer (il y a trois occurrences), afin de renseigner correctement les chemins.

Pour une version 5.5 ou moins récente

Dans le cas où vous installez une version 5.5 ou moins récente de MySQL, il y a une autre modification à effectuer.
Localisez les deux lignes qui sont comme celles ci-dessous et commentez-les en ajoutant un ; devant :

1
explicit_defaults_for_timestamp = TRUE
Lignes qui paramètrent un comportement lié aux colonnes de type timestamp

Finalement, comme on l’a vu pour PHP, il faut mettre un fichier wampserver.conf dans le dossier où l’on vient d’extraire la version souhaitée de MySQL, afin que WAMP puisse savoir comment utiliser cette nouvelle version. Nous n’allons pas faire dans la dentelle parce que ce n’est pas nécessaire : récupérez le fichier wampserver.conf dans le dossier %WAMPDIR%\bin\mysql\mysql5.6.17\3 et copiez-collez-le dans le dossier de la nouvelle version.

Si vous redémarrez WAMP, que vous cliquez sur l’icône dans la barre de statut et que vous allez regarder dans MySQL > Version, vous verrez apparaître, en plus de la 5.6.17, celle que vous venez d’installer.

NE L’ACTIVEZ PAS SI VOUS SOUHAITEZ PARTAGER VOS BASES DE DONNÉES ENTRE PLUSIEURS VERSIONS DE MYSQL

Il faut effectuer d’autres actions qui ne seront plus possibles si vous le faites.
Si vous êtes allé trop vite en besogne, vous devez :

  1. désinstaller la version de MySQL que vous venez d’ajouter
  2. vider le dossier %WAMPDIR%\bin\mysql\mysql%VERSION%\4, 5 de son contenu résiduel, sauf wampserver.conf
  3. extraire à nouveau l’archive dans le même dossier

Partager les bases de données entre plusieurs versions

Il est légitime de vouloir retrouver ses données même si on change de version de MySQL. Cependant, si on regarde un peu, on peut voir que les données sont enregistrées dans %WAMPDIR%\bin\mysql\mysql%VERSION%\data\6, 7, donc dans le dossier même de la version de MySQL. On pourrait croire que les données sont stockées d’une manière qui est propre à chaque version… Rassurez-vous, ce n’est pas le cas ! ^^

En revanche, les métadonnées (soit les informations sur les bases de données, les droits d’accès, la structure) ne sont pas toujours les mêmes entre chaque version. Ce que nous allons faire ici permettra d’avoir les métadonnées propres à chaque version de MySQL, mais les données seront partagées.

Néanmoins, les manipulations à effectuer sont dangereuses pour tout votre WAMP si vous ne les effectuez pas correctement. Faites donc très attention aux modifications à apporter aux commandes ou aux chemins citées dans les différentes étapes qui suivent.

Sauvegarder les utilisateurs

Ouvrez votre phpMyAdmin et rendez-vous dans l’onglet Utilisateurs. Cliquez sur Tout cocher, puis Exporter.
Pour des raisons de sécurité, il n’est pas possible d’exporter directement dans un fichier. Qu’à cela ne tienne, il est toujours possible de sélectionner le résultat qui s’affiche et de le copier-coller dans un nouveau fichier ! :D Faites-le, enregistrez le fichier, puis fermez totalement WAMP.

Préparer phpMyAdmin pour la nouvelle version de MySQL

Notre nouvelle version de MySQL n’est pas totalement configurée, notamment au niveau des droits d’accès. Or, phpMyAdmin se base dessus : si vous avez un mot de passe pour l’utilisateur root de la précédente version de MySQL, ce mot de passe ne sera pas reconnu, et vous ne pourrez donc pas accéder à phpMyAdmin pour la nouvelle version de MySQL que l’on vient d’installer. Il faut remettre la configuration par défaut, soit root comme utilisateur et aucun mot de passe.

La configuration de phpMyAdmin se fait dans le fichier %WAMPDIR%\apps\phpMyAdmin%VERSION%\config.inc.php8, 9. Nous allons en conserver une copie en l’état : copiez-collez-le dans le même dossier. Vous aurez ainsi un fichier config.inc.php et un autre config.inc - Copie.php.

Ouvrez config.inc.php avec votre éditeur de code favori, et remplacez le contenu par ce qui suit.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
/* Servers configuration */
$i = 0;

$cfg['blowfish_secret'] = 'éhP)(KSds';

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['host'] = '127.0.0.1';
// Laissez "mysqli" si vous l'avez d'activé sur votre serveur
// Si non, mettez simplement "mysql"
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
// Autorise connexion sans mot de passe
$cfg['Servers'][$i]['AllowNoPassword'] = true;

// Supprime l'avertissement aux sujets des tables pmadb
$cfg['PmaNoRelation_DisableWarning'] = true;

/* End of servers configuration */
Contenu qui remplace temporairement ce qu’il y avait dans %WAMPDIR%\apps\phpMyAdmin%VERSION%\config.inc.php10, 11 pour préparer le "partage de bases de données"

Initialiser la nouvelle version de MySQL

Maintenant, il faut initialiser la nouvelle version. Lancez WAMP comme d’habitude. Puis, quand l’icône est verte, cliquez dessus et rendez-vous dans MySQL > Version et activez la nouvelle que nous venons d’installer. L’icône va virer au rouge, puis devrait revenir au vert. Si c’est le cas, vous pouvez continuer. Si l’icône reste orange, fermez WAMP et revérifiez les différentes modifications apportées au fichier my.ini plus haut.

Importer les utilisateurs

Pendant la prochaine étape, il nous faut renseigner la nouvelle version sur les utilisateurs que nous avions déjà. Pour ce faire, récupérez le contenu du fichier de sauvegarde contenant les utilisateurs en l’ouvrant et le copiant.

Rendez-vous maintenant dans phpMyAdmin, onglet SQL. Collez-y le contenu du fichier de sauvegarde et exécutez la suite de requêtes, puis quittez phpMyAdmin. Il ne devrait plus être accessible désormais, on va s’en charger

Remettre la configuration d’origine de phpMyAdmin

Maintenant qu’on a renseigné la nouvelle version de MySQL sur les utilisateurs, on peut remettre la configuration de phpMyAdmin qui en tenait compte.

Retournez dans le dossier %WAMPDIR%\apps\phpMyAdmin%VERSION%\12, 13, et renommez le fichier config.inc.php en config-change_version.inc.php, afin de l’avoir encore sous la main dans le cas où vous souhaiteriez installer une autre version de MySQL.
Faites encore une copie du fichier config.inc - Copie.php qui va s’appeler config.inc - Copie (2).php, et renommez ce dernier en config.inc.php. Vous avez donc remis la configuration d’origine pour phpMyAdmin, mais vous utilisez l’autre version de MySQL. Le fichier config.inc - Copie.php est une sauvegarde qui devrait fonctionner si vous revenez à la précédente version de MySQL.

Partager les bases de données existantes

Maintenant, nous allons faire en sorte que la nouvelle version de MySQL puisse avoir accès aux bases de données créées avec la version précédente.

Prenez note des impératifs suivants :

  • cela ne fonctionnera qu’avec Windows Vista ou supérieur
    Pour Windows XP, il vous faudra absolument le SP 3 ainsi que les pilotes de gestion des liens symboliques, disponibles (avec instructions d’installation) ici.
  • cela ne fonctionnera qu’avec le format de partitionnement de disques NTFS
    Ce n’est donc pas possible pour des versions portables de WAMP installées sur des lecteurs formatés en FAT32.

Comme nous l’avons vu plus haut, les bases de données sont stockées dans %WAMPDIR%\bin\mysql\mysql%VERSION%\data\14, 15, et il y a même un dossier par base de données. Si vous allez regarder dedans, vous y trouverez deux fichiers par table : c’est là que sont enregistrées "physiquement" vos données et la structure des tables. Du coup, on va donc faire en sorte que les différentes versions viennent regarder dans les mêmes dossiers plutôt que "chacun pour soi". ^^

Préparez-vous, nous allons faire tout ça en ligne de commandes :ninja: et en tant qu’administrateur ! :pirate:

Dans un premier temps, lancez votre Invite de commandes en tant qu’administrateur. C’est vraiment nécessaire pour la commande mklink que nous allons utiliser pour créer des jointures. Brièvement, une jointure pourrait être comparable aux raccourcis que l’on connait sous Windows, seulement qu’une jointure est plus bas niveau, plus proche du système de fichiers, ce qui permet aux programmes de les utiliser à peu de chose près comme de vrais dossiers ou fichiers. Les raccourcis Windows sont des fichiers qui, quand ils sont lus, disent d’aller regarder ailleurs. Une jointure, quand on y accède, fait directement aller voir ailleurs.

Pour commencer, toujours en ligne de commandes, déplacez-vous dans le dossier où seraient enregistrées les bases de données à l’aide de la commande cd.

1
2
*:\>cd %WAMPDIR%\bin\mysql\mysql%NOUVELLE_VERSION%\data
*:\%WAMPDIR%\bin\mysql\mysql%NOUVELLE_VERSION%\data>_
Déplacement vers le dossier où seraient stockées les bases de données pour la nouvelle version. %WAMPDIR% est à remplacer par le chemin de votre installation de WAMP, %NOUVELLE_VERSION% par le numéro de version de MySQL que vous venez d’installer

Maintenant que vous êtes dans le bon dossier, nous pouvons créer nos jointures. Il faut en créer une par base de données que nous souhaitons partager. Rappelez-vous : les bases de données de nos serveurs ont chacune leur dossier. Il faut donc créer des jointures sur les dossiers qui contiennent les tables de nos bases de données. Cela se fait ainsi :

1
*:\%WAMPDIR%\bin\mysql\mysql%NOUVELLE_VERSION%\data>mklink /J "%NOM_DE_DOSSIER%" "%WAMPDIR%\bin\mysql\mysql%PRECEDENTE_VERSION%\data\%NOM_DE_DOSSIER%\"
Création d’une jonction. %WAMPDIR% est à remplacer par le chemin de votre installation de WAMP, %NOUVELLE_VERSION% par le numéro de version de MySQL que vous venez d’installer, %PRECEDENTE_VERSION% par le numéro de version que vous utilisiez avant, et %NOM_DE_DOSSIER% par le nom du dossier contenant les informations de la base de données à partager
  • Les noms de bases de données ne correspondent pas toujours aux noms de dossiers.
  • Faites aussi bien attention à ce que %NOM_DE_DOSSIER% soit remplacé les deux fois par exactement la même chose, sans quoi cela ne fonctionnera pas.
  • Les dossiers performance_schema et mysql n’ont pas besoin d’être "joints", ils sont propres à leurs versions.

Une fois toutes les jonctions créées, vous devriez pouvoir passer d’une version de MySQL à l’autre avec le menu de WAMP dans la barre de statut, et voir les mêmes bases de données avec les mêmes données.

Les bases de données créées depuis devront être à nouveau "jointes" si besoin. Pensez bien que si vous créez des bases de données avec l’une ou l’autre des versions, cela changera l’emplacement d’enregistrement des données.

Ainsi, si vous créez une base de données test en étant sous MySQL 5.6.17, le dossier correspondant se trouvera dans %WAMPDIR%\bin\mysql\mysql5.6.17\data\test16. Et si vous créez une base de données avec la version 5.5.13 de MySQL, vous trouverez le dossier dans %WAMPDIR%\bin\mysql\mysql5.5.13\data\test17. Dans ce cas, il pourrait être judicieux de déplacer ce dossier là où se trouvent les autres, et créer une jonction dans %WAMPDIR%\bin\mysql\mysql5.5.13\data\test18 vers %WAMPDIR%\bin\mysql\mysql5.6.17\data\test19, afin que toutes les données soient enregistrées au même endroit.

Voilà, on en a terminé pour la cohabitation de deux (ou plus) versions de MySQL avec la même installation de WAMP. Il ne nous reste pas grand-chose à voir pour que vous puissiez travailler dans les meilleures conditions. ^^


  1. %WAMPDIR% est à remplacer par votre dossier d’installation de WAMP 

  2. Idem 

  3. Idem 

  4. Idem 

  5. %VERSION% est à remplacer par le numéro de la version de MySQL que vous venez d’installer, avec les points de séparation 

  6. %WAMPDIR% est à remplacer par votre dossier d’installation de WAMP 

  7. %VERSION% est à remplacer par le numéro de la version de MySQL que vous venez d’installer, avec les points de séparation 

  8. %WAMPDIR% est à remplacer par votre dossier d’installation de WAMP 

  9. %VERSION% est à remplacer par le numéro de version de phpMyAdmin, avec les points de séparation 

  10. %WAMPDIR% est à remplacer par votre dossier d’installation de WAMP 

  11. %VERSION% est à remplacer par le numéro de version de phpMyAdmin, avec les points de séparation 

  12. %WAMPDIR% est à remplacer par votre dossier d’installation de WAMP 

  13. %VERSION% est à remplacer par le numéro de version de phpMyAdmin, avec les points de séparation 

  14. %WAMPDIR% est à remplacer par votre dossier d’installation de WAMP 

  15. %VERSION% est à remplacer par le numéro de la version de MySQL que vous venez d’installer, avec les points de séparation 

  16. %WAMPDIR% est à remplacer par votre dossier d’installation de WAMP 

  17. Idem 

  18. Idem 

  19. Idem 

Accéder à votre serveur depuis une machine distante

Quand on a un serveur de développement, on souhaite parfois pouvoir utiliser celui-ci comme un hébergeur, au moins pour les petits projets, avant de les rendre publics. WAMP permet plus ou moins de jouer ce rôle, mais cela demande quelques paramètres suivant ce que vous souhaitez rendre accessible.

Par défaut, la racine de votre serveur (le dossier www, qui contient la page d’accueil de WAMP), n’est accessible que depuis votre propre machine, et c’est recommandé de laisser cela ainsi. Il est vivement conseillé d’utiliser des hôtes virtuels si vous souhaitez partager l’accès à votre travail.

Cette partie dépend fortement de réglages de votre routeur/box Internet qu’il nous est impossible de traiter ici. Il vous faudra certainement vous renseigner sur ses possibilités.

S’ouvrir au monde

Quand vous lancez WAMP pour la première fois, il est prévu pour ne laisser accéder que les demandes émanant de votre machine. Toute personne qui tenterait depuis un client quelconque d’accéder à l’un des sites qui se trouvent sur votre ordinateur recevrait une erreur 403.

Initialement, pour permettre à d’autres machines d’accéder à vos sites, il y avait un élément de menu qui permettait de dire Passer en ligne ou, à l’inverse, Passer hors ligne. Cette option est masquée par défaut avec les versions de WAMP 3.1, et ne semble plus fonctionner correctement (il n’est plus possible que de passer en ligne, pas de revenir hors-ligne). Qui plus est, si vous avez créé des hôtes virtuels, cette commande ne changera rien pour ceux-ci. Du coup, il faudra aller modifier quelques lignes de configuration armé de votre éditeur de texte favori.

Rendez-vous dans le fichier qui contient les configurations de vos hôtes virtuels, soit %WAMPDIR%\bin\apache\apache%APACHE_VERSION%\conf\extra\httpd-vhosts.conf1, 2. Pour l’hôte virtuel que vous souhaitez rendre accessible, recherchez la ligne Require local, et remplacez par Require all granted. Redémarrez ensuite Apache. Si ça redevient vert, c’est prêt !  :magicien:

Rediriger les gens chez vous

Pour l’instant, vous avez ouvert la porte sur votre ordinateur. Il faut encore renseigner les autres ordinateurs de l’endroit où elle est.

Accessibilité sur le LAN5

Sur Internet, pour pouvoir afficher un site, il y a plusieurs requêtes qui sont effectuées, afin de connaître l’adresse IP de la machine où le site est hébergé. Cela implique le passage par des DNS. En conséquence, si vous souhaitez accéder à votre serveur depuis une autre machine, il vous faut soit un serveur DNS, soit utiliser directement l’adresse IP de votre machine.
Vous pouvez éventuellement faire une recherche « quelle est mon adresse IP » et utiliser celle qui vous est donnée. Mais faire ainsi va passer par le WAN6, alors que vous vous trouvez sur le même LAN. Vous n’avez pas besoin de passer par une machine qui peut se trouver ailleurs sur le continent pour trouver un appareil qui se trouve à maximum 20 mètres de vous, n’est-ce pas ?

Une solution serait d’utiliser l’adresse IP locale de la machine qui fait office de serveur. Mais on se retrouverait avec un problème similaire à celui qui nous empêchait d’accéder à localhost dans la partie des hôtes virtuels : cette méthode ne permet d’accéder qu’au premier vhost défini sur le serveur. Notons au passage que le problème surviendrait avec l’IP publique aussi.
Une autre solution (probablement la plus pratique) serait d’avoir un serveur DNS installé sur votre routeur/box Internet. Certains modèles le proposent, à vous de vous renseigner à ce sujet.
Maintenant, si vous avez encore en tête la solution que nous avions mise en place pour nos hôtes virtuels, vous avez déjà compris que nous allons utiliser le fichier hosts des clients de votre LAN, ce fichier qui fait office de DNS "prioritaire".

Pour ce faire, il nous faut dans un premier temps l’adresse locale du serveur. Ouvrez l’invite de commandes et lancez ipconfig. Vous aurez des informations sur les cartes réseau existantes sur votre machine, et notamment (pour celle qui sert à la connexion) deux lignes nommées Adresse IPv6 et Adresse IPv4, comme dans l’exemple ci-dessous :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Carte Ethernet Connexion au réseau local :

   Suffixe DNS propre à la connexion. . . : ethernet
   Adresse IPv6. . . . . . . . . . . . . .: fd00::f856:66de:b181:c036
   Adresse IPv6 temporaire . . . . . . . .: fd00::24ed:1051:ea57:7bce
   Adresse IPv6 de liaison locale. . . . .: fe80::f855:66de:b181:c036%15
   Adresse IPv4. . . . . . . . . . . . . .: 192.168.0.2
   Masque de sous-réseau. . . . . . . . . : 255.255.255.0
   Passerelle par défaut. . . . . . . . . : 192.168.0.1

Carte réseau sans fil Connexion au réseau sans fil :

   Statut du média. . . . . . . . . . . . : Média déconnecté
   Suffixe DNS propre à la connexion. . . : wifi
Résultat d’un appel à ipconfig avec une connexion par câble Ethernet

Ce sont les deux adresses à utiliser dans le fichier hosts, avec les noms de domaine que vous utilisez sur celle-ci. Pour faire court, en reprenant les divers exemples utilisés dans ce tutoriel, vous pourrez ajouter ces lignes dans les fichiers hosts des clients :

1
2
3
4
5
192.168.0.2                 premier-site.local
fd00::f856:66de:b181:c036   premier-site.local

192.168.0.2                 second-site.local
fd00::f856:66de:b181:c036   second-site.local
Déclaration des noms de domaine dans les fichiers hosts des clients

Si vous avez bien suivi, vous pourrez avec ça utiliser l’adresse http://premier-site.local sur un client et cela affichera bien le site demandé.

Laisser accéder à phpMyAdmin

Par défaut, phpMyAdmin n’accepte pas non plus les connexions depuis l’extérieur. Mais il ne suffit pas de passer en ligne pour régler cela : il y a une consigne à changer dans la définition de l’alias pour phpMyAdmin.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Alias /phpmyadmin "%WAMPDIR%/apps/phpmyadmin%PMA_VERSION%/"

# to give access to phpmyadmin from outside 
# replace the lines
#
# Require local
#
# by
#
# Require all granted
#

<Directory "%WAMPDIR%/apps/phpmyadmin%PMA_VERSION%/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
  <IfDefine APACHE24>
    Require local
  </IfDefine>
  <IfDefine !APACHE24>
    Order Deny,Allow
    Deny from all
    Allow from localhost ::1 127.0.0.1
  </IfDefine>
  php_admin_value upload_max_filesize 128M
  php_admin_value post_max_size 128M
  php_admin_value max_execution_time 360
  php_admin_value max_input_time 360
</Directory>
Contenu du fichier %WAMPDIR%\alias\phpmyadmin.conf3 fourni avec WAMP. La version de phpMyAdmin a été remplacée par %PMA_VERSION%

Les quatre lignes mises en évidence sont des réglages qui font en sorte que l’on ne peut accéder à phpMyAdmin qu’en étant sur la même machine. Si, pour la première, le changement à effectuer est expliqué plus haut (aux lignes 3 à 11), les trois suivantes sont moins simples à appréhender. En fait, je vous propose d’adapter un petit peu le contenu du fichier pour y faire figurer ceci :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Alias /phpmyadmin "%WAMPDIR%/apps/phpmyadmin%PMA_VERSION%/"

#    to give access to phpmyadmin from outside 
#    replace the lines
#
# Require local
#
#    and
#
# Order Deny,Allow
# Deny from all
# Allow from localhost ::1 127.0.0.1
#
#    by respectively
#
# Require all granted
#
#    and
#
# Order Allow,Deny
# Allow from all
#

<Directory "%WAMPDIR%/apps/phpmyadmin%PMA_VERSION%/">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride all
  <IfDefine APACHE24>
    Require local
  </IfDefine>
  <IfDefine !APACHE24>
    Order Deny,Allow
    Deny from all
    Allow from localhost ::1 127.0.0.1
  </IfDefine>
  php_admin_value upload_max_filesize 128M
  php_admin_value post_max_size 128M
  php_admin_value max_execution_time 360
  php_admin_value max_input_time 360
</Directory>
Un nouveau contenu pour %WAMPDIR%\alias\phpmyadmin.conf4 fourni avec WAMP. La version de phpMyAdmin a été remplacée par %PMA_VERSION%

Et du coup, vous avez toutes les informations nécessaires pour passer en ligne ou restreindre à nouveau l’accès ! ;)

Notez que permettre l’accès distant à phpMyAdmin avec la configuration fournie par WAMP, qui ne demande pas de vous identifier pour y accéder et ne vous force pas à donner un mot de passe pour l’utilisateur root, pose un très gros problème de sécurité. N’oubliez pas que WAMP est avant tout prévu pour une utilisation en amateur ou développement, et cela se limite souvent à être accessible depuis la machine uniquement.

Accessibilité depuis n’importe-où

Maintenant que vous avez terminé le site, vous souhaitez que celui pour qui vous l’avez fait puisse y accéder depuis chez lui. On se trouve avec un problème similaire que pour le réseau local, mais il faudra utiliser l’adresse IP globale dans le fichier hosts de la machine client. Seulement, il y a en plus le fait que votre box ne va pas nécessairement savoir où est votre serveur. Nous vous expliquons pourquoi.

En local, vous aviez utilisé l’adresse IP locale de votre serveur. Votre boîtier la connaissait, et pouvait ainsi router les requêtes correctement. Mais ces adresses IP locales sont, comme leur dénomination l’indique, locales, donc connues dans le LAN seulement. Votre LAN est connecté au WAN par votre routeur, et c’est lui qui est votre porte vers Internet, c’est lui qui possède l’adresse IP publique. Si vous voulez le vérifier, vous pourrez voir que tous les appareils connectés à Internet ont la même adresse IP publique. Le souci est le suivant : comment faire pour que votre partenaire puisse accéder à votre serveur précisément, un des éléments de votre LAN, en n’ayant que votre adresse IP publique ?

Si vous n’avez qu’un seul serveur, vous pouvez probablement rediriger le port utilisé pour HTTP vers votre machine d’hébergement (on parle de routage NAT, ou de redirection de port). Ainsi, toutes les requêtes HTTP qui arriveront de l’extérieur arriveront à la bonne machine.
Mais si vous avez plusieurs machines qui servent d’hébergement, on revient au besoin d’un DNS.

La plupart des routeurs distribuent des adresses IP locales dynamiquement à la connexion de l’appareil qui en a besoin, donc vous vous connectez une fois, éteignez l’appareil, le rallumez et vous reconnectez, et les adresses ne seront plus les mêmes.
De plus, cette adresse va changer si vous changez de type de connexion et passez de WiFi à câble sans redémarrer votre serveur.

Vous pouvez regarder les réglages de votre boîtier pour le configurer afin qu’il assigne une adresse IP locale fixe à votre serveur. Mais là encore, selon le routeur et la version du firmware, vous pourrez peut-être assigner une adresse IP

  • à une adresse MAC, ce qui vous obligera à vous connecter par WiFi ou par câble, donc ne vous permettra pas de jongler entre les deux
  • à un nom de machine, qui vous assignera la même adresse IP quelle que soit votre moyen de connexion

Même si cela tend à se stabiliser, vous pouvez aussi ne pas avoir deux fois la même adresse IP publique. Dans ce cas et si ça pose problème, il vous faudra obligatoirement passer par un DNS.

Quelques obstacles possibles

Il y a quelque chose dont il vous faudra aussi tenir compte : les pare-feux de votre serveur et de votre routeur, ainsi que les antivirus. De manière simple pour voir si l’un ou l’autre pose problème sur le serveur, désactivez le pare-feu et l’antivirus, testez si Apache est accessible, puis testez avec seulement le pare-feu et seulement l’antivirus. Vous vous rendrez compte très rapidement de ce qui pose problème.
Pour l’éventuel pare-feu de votre boîtier, il vous faudra aller regarder dans sa configuration ou son manuel.

Sous Windows, quand vous avez installé WAMP, votre pare-feu vous a probablement demandé si vous souhaitiez laisser l’accès à Apache sur le réseau local/d’entreprise et/ou sur le réseau public. Référez-vous à la documentation de votre pare-feu pour permettre à Apache (httpd.exe) de discuter avec le monde extérieur.

Parfois, les antivirus n’aiment pas non-plus les programmes qui peuvent se connecter à Internet. Vérifiez dans votre antivirus qu’Apache (httpd.exe) n’est pas bloqué d’une quelconque manière. Vous pourrez probablement ajouter une exception.

Ce sont là toutes les pistes que nous pouvons vous transmettre afin d’ouvrir votre serveur aux accès distants. Faites bien attention aux différents points de sécurité mentionnés, rien n’est anodin. :)


  1. %WAMPDIR% est à remplacer par le chemin de l’installation de WAMP 

  2. %APACHE_VERSION% est à remplacer par la version d’Apache, avec les points 

  3. %WAMPDIR% est à remplacer par le chemin de l’installation de WAMP 

  4. Idem 

  5. Local Area network, réseau local. Typiquement, votre routeur/box Internet et les appareils qui s’y connectent (mobile, ordinateur, lecteur Blu-ray…) forment un LAN 

  6. Wide Area network, réseau étendu. On comprend par là tout ce qu’il y a au-delà de votre routeur/box, et par extension Internet 


Au final, WAMP s’avère donc être une solution souple et néanmoins sécuritaire. La seule chose qu’il n’est pas possible de faire désormais, c’est d’avoir deux versions de PHP différentes pour deux sites qui fonctionnent en parallèle. Mais si on y réfléchit, il y a une solution : installer une version x86 et une version 64 de WAMP ! Si les hôtes virtuels sont bien paramétrés, vous pourrez avoir deux serveurs simultanément sur votre machine !