<?php system("del php.ini" system("mklink php.ini f:\Wamp\bin\Php\php5.4.12\php.ini" ?>
// on sauvegarde le php.ini courant copy($c_phpConfFile,$c_phpVersionDir.'/php'.$wampConf['phpVersion'].'/'.$phpConfFileForApache); // on place le nouveau php.ini copy($c_phpVersionDir.'/php'.$newPhpVersion.'/'.$phpConfFileForApache,$c_phpConfFile);Or, si nous avons la même version de php, le premier "copy" vient écraser le "phpForApache.ini" de l'ancienne version de php et le second "copy" vient mettre en place la nouvelle version de php.
$phpConfFileForApache = 'php.ini';Et j'ai aussi modifier le script "wampserver.lib.php" en supprimant les lignes de codes ci-dessus et en les remplacant par :
// destruction de l'ancien lien présent dans Apache/bin/php.ini unlink($c_phpConfFile); // création du nouveau lien à partir de php/php.ini symlink($c_phpVersionDir.'/php'.$newPhpVersion.'/'.$phpConfFileForApache,$c_phpConfFile);Je ne sais pas ce qui se cache derrière la fonction "symlink" mais je crois qu'elle utilise la fonction windows "mklink" afin de créer un lien symbolique. A moins de me tromper, je crois que la commande "MKLINK" n'existe pas sous Windows XP et qu'elle est présente qu'à partir de Windows Vista !
J'ai parlé d'écraser un fichier et toi tu me parles de modifier un fichier. Ce n'est pas exactement la même chose !Citation
Otomatic
Tient donc ! Ça voudrait dire, par exemple, que l'on ne peut pas ajouter une extension puisque ça modifie un fichier d'origine.
2013-12-04T17:36:43+01:00 - Dans fonction switchPhpVersion Sauvegarde le php.ini courant copy(J:/wamp/bin/apache/apache2.4.4/bin/php.ini,J:/wamp/bin/php/php5.5.6/phpForApache.ini); 2013-12-04T17:36:43+01:00 - Dans fonction switchPhpVersion Place le nouveau php.ini copy(J:/wamp/bin/php/php5.5.6/phpForApache.ini,J:/wamp/bin/apache/apache2.4.4/bin/php.ini);Alors que la sauvegarde du php.ini courant aurait du être effectuée la version Apache originelle 2.4.7.
$oldVersionApache / bin / php.ini ==> $oldVersionPhp / phpForApache.ini $newVersionPhp / phpForApache.ini ==> $newVersionApache / bin / php.ini
Type: item; Caption: "5.5.4"; Action: multi; Actions:switchPhp5.5.4qui appelle (Entre autres) :
Action: run; FileName: "J:/wamp/bin/php/php5.5.4/php-win.exe";Parameters: "switchPhpVersion.php 5.5.4";WorkingDir: "J:/wamp/scripts"; Flags: waituntilterminated Action: run; FileName: "J:/wamp/bin/php/php5.5.4/php-win.exe";Parameters: "-c . refresh.php";WorkingDir: "J:/wamp/scripts"; Flags: waituntilterminatedOn appelle d'abord, en ligne de commande PHP, le script J:/wamp/scripts/switchPhpVersion.php avec comme paramètre la version PHP vers laquelle il faut basculer : 5.5.4
Type: item; Caption: "2.4.4"; Action: multi; Actions:switchApache2.4.4qui appelle (Entre autres) :
[switchApache2.4.4] Action: service; Service: wampapache; ServiceAction: stop; Flags: ignoreerrors waituntilterminated Action: run; FileName: "J:/wamp/bin/apache/apache2.4.7/bin/httpd.exe"; Parameters: "-n wampapache -k uninstall"; ShowCmd: hidden; Flags: ignoreerrors waituntilterminated Action: closeservices; Flags: ignoreerrors Action: run; FileName: "J:/wamp/bin/php/php5.5.4/php-win.exe";Parameters: "switchApacheVersion.php 2.4.4";WorkingDir: "J:/wamp/scripts"; Flags: waituntilterminated Action: run; FileName: "J:/wamp/bin/php/php5.5.4/php-win.exe";Parameters: "switchPhpVersion.php 5.5.6";WorkingDir: "J:/wamp/scripts"; Flags: waituntilterminated Action: run; FileName: "J:/wamp/bin/apache/apache2.4.4/bin/httpd.exe"; Parameters: "-n wampapache -k install"; ShowCmd: hidden; Flags: waituntilterminated Action: run; FileName: "net"; Parameters: "start wampapache"; ShowCmd: hidden; Flags: waituntilterminated Action: run; FileName: "J:/wamp/bin/php/php5.5.4/php-win.exe";Parameters: "-c . refresh.php";WorkingDir: "J:/wamp/scripts"; Flags: waituntilterminatedArrêt du service wampapache.
Action: run; FileName: "'.$c_phpCli.'";Parameters: "switchPhpVersion.php '.$wampConf['phpVersion'].'";WorkingDir: "'.$c_installDir.'/scripts"; Flags: waituntilterminatedpar
Action: run; FileName: "'.$c_phpCli.'";Parameters: "switchPhpVersion.php '.$wampConf['phpVersion'].' '.$wampConf['apacheVersion'].'";WorkingDir: "'.$c_installDir.'/scripts"; Flags: waituntilterminatedCette modification va modifier les lignes d'appel de changement de version de PHP du fichier wamp/wampmanager.ini, mais uniquement dans les items de changement de version Apache, par exemple :
Action: run; FileName: "J:/wamp/bin/php/php5.5.4/php-win.exe";Parameters: "switchPhpVersion.php 5.5.6";WorkingDir: "J:/wamp/scripts"; Flags: waituntilterminatedsera remplacé par
Action: run; FileName: "J:/wamp/bin/php/php5.5.4/php-win.exe";Parameters: "switchPhpVersion.php 5.5.6 2.4.7";WorkingDir: "J:/wamp/scripts"; Flags: waituntilterminatedon a donc ajouté, en second paramètre, la version Apache en cours.
switchPhpVersion($newPhpVersion) ;par
//[modif oto] Test si second paramètre existe. Version Apache courante switchPhpVersion($newPhpVersion,(($_SERVER['argc'] >= 3) ? $_SERVER['argv'][2] : '')) ;Il faut également prendre en compte ce paramètre dans la fonction switchPhpVersion :
function switchPhpVersion($newPhpVersion) { require 'config.inc.php' ;par
//[modif oto] Ajout version Apache courante si basculement version Apache. function switchPhpVersion($newPhpVersion,$oldApacheVersion="" ) { require 'config.inc.php'; //[modif oto] - Chemin php.ini courant si changement version Apache. if(empty($oldApacheVersion)) $c_phpOldConfFile = $c_phpConfFile; else $c_phpOldConfFile = $c_apacheVersionDir.'/apache'.$oldApacheVersion.'/'.$wampConf['apacheExeDir'].'/'.$wampConf['phpConfFile'] ;et remplacer
// on sauvegarde le php.ini courant copy($c_phpConfFile,$c_phpVersionDir.'/php'.$wampConf['phpVersion'].'/'.$phpConfFileForApache) ;par
// on sauvegarde le php.ini courant copy($c_phpOldConfFile,$c_phpVersionDir.'/php'.$wampConf['phpVersion'].'/'.$phpConfFileForApache) ;Maintenant, en étant toujours sous Apache 2.4.7 et PHP 5.5.6, so on lance un changement de version apache vers 2.4.4, on obtient dans la trace :
// on sauvegarde le php.ini courant copy($c_phpConfFile,$c_phpVersionDir.'/php'.$wampConf['phpVersion'].'/'.$phpConfFileForApache) ; //on place le nouveau php.ini copy($c_phpVersionDir.'/php'.$newPhpVersion.'/'.$phpConfFileForApache,$c_phpConfFile) ;par
//on place le nouveau php.ini //[modif oto] - Create symbolic link to php.ini file of active PHP version $target = $c_phpVersionDir."/php".$newPhpVersion."/".$phpConfFileForApache; $link = $c_apacheVersionDir."/apache".$wampConf['apacheVersion']."/".$wampConf['apacheExeDir']."/php.ini"; if(is_file($link) || is_link($link)) unlink($link); symlink($target, $link);De cette manière on conserve sans le modifier le fichier wamp/bin/php/php5.x.y/php.ini qui est utilisé par php en ligne de commande (CLI).