D'une version à l'autre, on a des ajouts, des modifications, des bug fix, des security fix, et ça se passe très souvent dans les modules, pas uniquement sur le moteur Apache ou PHP.
Il n'y a jamais de copies ou de liens à partir d'une version “unique”.
- Ce sont toujours les modules de la version Apache en cours qui sont chargés, pas ceux d'une autre version ou de la version d'avant.
- Ce sont toujours les dll de la version PHP en cours qui sont copiés ou “symlinkés” dans le dossier bin de la version d'Apache en cours.
La liste desdits fichiers dll est “unique” quelles que soient les version Apache et PHP utilisées et évolue avec les versions Apache et PHP, c'est d'ailleurs une des raisons des mise à jours Wampserver.
Par exemple, pour les fichiers icu*xx.dll xx peut valoir 38, 40, 42, 44, 46, 48 à 57 pour PHP de 5.3 à 5.6. 60 pour PHP 7.2, 61 à partir de 7.2.5, 62 à partir de 7.2.8, 63 à partir de 7.2.12 et 7.3RC6 et c'est aussi pourquoi certains addon nécessitent au moins une certaine version de Wampserver.
Le contenu du tableau $phpDllToCopy, pour Wampserver 3.1.4 est actuellement de 167 éléments :
[0] => icudt63.dll
[1] => icuin63.dll
[2] => icuio63.dll
[3] => icule63.dll
[4] => iculx63.dll
[5] => icutest63.dll
[6] => icutu63.dll
[7] => icuuc63.dll
Les mêmes avec 62, 61, 60, 57 à 48, 46, 44, 42, 40, 38
[152] => libmysql.dll
[153] => libeay32.dll
[154] => libsasl.dll
[155] => libcrypto-1_1.dll
[156] => libssl-1_1.dll
[157] => libcrypto-1_1-x64.dll
[158] => libssl-1_1-x64.dll
[159] => libpq.dll
[160] => libssh2.dll
[161] => libsodium.dll
[162] => php5isapi.dll
[163] => php5nsapi.dll
[164] => ssleay32.dll
[165] => php5ts.dll
[166] => php7ts.dll
À chaque changement de version Apache ou PHP :
pour chaque nom de fichier de cette liste : {
- Le nom de fichier est-il un lien symbolique ou un fichier dans le dossier bin d'Apache ?
-- Si oui, il est supprimé (unlink)
- Existe-t-il un fichier de ce nom dans le dossier de la version PHP en cours ?
-- Si oui, il est copié ou symlinké dans le dossier bin d'Apache
}