$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', 'icudt50.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.5 'icuin50.dll', 'icuio50.dll', 'icule50.dll', 'iculx50.dll', 'icutest50.dll', 'icutu50.dll', 'icuuc50.dll', 'icudt49.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.3/5.4 'icuin49.dll', 'icuio49.dll', 'icule49.dll', 'iculx49.dll', 'icutest49.dll', 'icutu49.dll', 'icuuc49.dll', 'libeay32.dll', 'libsasl.dll', //[modif oto] - Ajout pour éviter unknown error 'libintl.dll', 'php5isapi.dll', 'php5nsapi.dll', 'ssleay32.dll', 'php5ts.dll', );Et, dans le fichier wamp\scripts\wampserver.lib.php
//on copie des dll //[modif oto] - Create symbolic link instead of copy files foreach ($phpDllToCopy as $dll) { $target = $c_phpVersionDir.'/php'.$newPhpVersion.'/'.$dll; $link = $c_apacheVersionDir.'/apache'.$wampConf['apacheVersion'].'/'.$wampConf['apacheExeDir'].'/'.$dll; if (is_file($target)) { if(is_file($link) || is_link($link)) unlink($link); symlink($target, $link); } }
<?php require ('parameters.php'); $oldPhpVersion = $wamp_conf['phpVersion']; $newPhpVersion = $_SERVER['argv'][1]; /*================================================================*/ /* Création du lien vers 'php.ini' à partir de la nouvelle Sphere */ /*================================================================*/ $php = $php_dir.'/php'.$newPhpVersion.'/php.ini'; $conf = $sphere_dir.'/'.$wamp_conf['sphereVersion'].'/php'.$newPhpVersion.'/php.ini'; if (!file_exists($php)) $php = $php_dir.'/courant/php.ini'; unlink($php); symlink($conf, $php); /*====================================*/ /* On renomme le répertoire 'Courant' */ /*====================================*/ if ($oldPhpVersion != $newPhpVersion) { rename($php_dir.'/courant', $php_dir.'/php'.$oldPhpVersion); rename($php_dir.'/php'.$newPhpVersion, $php_dir.'/courant'); } /*=====================================*/ /* Modification du fichier 'wamp.conf' */ /*=====================================*/ $wamp_conf['phpVersion'] = $newPhpVersion; $contents = @file_get_contents($wamp_file); foreach ($wamp_conf as $param => $value) $contents = preg_replace('|'.$param.' = .*|', $param.' = '.'"'.$value.'"', $contents); /*===================================*/ /* Sauvegarde du fichier 'wamp.conf' */ /*===================================*/ $fp = fopen($wamp_file, "w" fwrite($fp, $contents); fclose($fp); ?>
@echo off php.exe f:\wamp\scripts\switchPhpVersion.php 5.5.9 pause exitIl n'y a aucun PATH car j'utilise celui défini en standard.
[phpCli] phpCliVersion = 5.5.8 phpExeFile = php.exe phpCliFile = php-win.exeCe qui se traduit ensuite, lors de la construction de wampmanager.ini par des lignes du style :
Action: run; FileName: "J:/wamp/bin/php/php5.5.8/php-win.exe";Parameters: "refresh.php"Et des lignes avec "wamp/bin/php/php5.5.8/php-win.exe", il peut en avoir quelques centaines.
Action: run; FileName: "J:/wamp/bin/php/courant/php-win.exe";Parameters: "refresh.php"
Action: run; FileName: "J:/wamp/bin/php/courant/php-win.exe";Parameters: "refresh.php"C'est comme cela que je procède dans ma version personnelle de WampServer.