php.ini sous Wamp 3

J'ai eu un bug au démarrage de Wamp 3: pas de time zone définie, et je me suis alors demandée quel fichier php.ini était chargé et comment se déroulait le switch entre les 2 PHP (PHP 5.6.19 et PHP 7.0.4)

La fonction switchPhpVersion

Dans le dossier C:/wamp/scripts on trouve le fichier switchPhpVersion.php qui utilise la fonction switchPhpVersion que je copie/colle ici :

function switchPhpVersion($newPhpVersion)
{
    //on charge le fichier qui donne les adresses relatives des fichiers, 
    //Il donne en particulier $phpConfFileForApache = 'phpForApache.ini'
    require 'config.inc.php';

    //on charge le fichier de conf de la nouvelle version
    require $c_phpVersionDir.'/php'.$newPhpVersion.'/'.$wampBinConfFiles;

    //on determine les textes httpd.conf en fonction de la version d'apache
    $apacheVersion = $wampConf['apacheVersion'];
    while (!isset($phpConf['apache'][$apacheVersion]) && $apacheVersion != '')
    {
        $pos = strrpos($apacheVersion,'.');
        $apacheVersion = substr($apacheVersion,0,$pos);
    }

    // on modifie le fichier de conf d'apache
    $httpdContents = file($c_apacheConfFile);
    $newHttpdContents = '';
    foreach ($httpdContents as $line)
    {
        if (strstr($line,'LoadModule') && strstr($line,'php'))
        {
            $newHttpdContents .= 'LoadModule '.$phpConf['apache'][$apacheVersion]['LoadModuleName'].' "'.$c_phpVersionDir.'/php'.$newPhpVersion.'/'.$phpConf['apache'][$apacheVersion]['LoadModuleFile'].'"'."\r\n";
        }
        elseif (!empty($phpConf['apache'][$apacheVersion]['AddModule']) && strstr($line,'AddModule') && strstr($line,'php'))
    	$newHttpdContents .= 'AddModule '.$phpConf['apache'][$apacheVersion]['AddModule']."\r\n";
        else
			$newHttpdContents .= $line;
    }
    file_put_contents($c_apacheConfFile,$newHttpdContents);

    //on modifie la conf de wampserver
    $wampIniNewContents['phpIniDir'] = $phpConf['phpIniDir'];
    $wampIniNewContents['phpExeDir'] = $phpConf['phpExeDir'];
    $wampIniNewContents['phpConfFile'] = $phpConf['phpConfFile'];
    // Renseigne ancienne version PHP
    $wampIniNewContents['phpLastKnown'] = $wampConf['phpVersion'];
    $wampIniNewContents['phpVersion'] = $newPhpVersion;
    wampIniSet($configurationFile, $wampIniNewContents);

    // Crée un lien symbolique vers php dll et le phpForApache.ini de la nouvelle version
    linkPhpDllToApacheBin($newPhpVersion);

}

Cette fonction modifie tous les fichiers de configutation nécessaires de Apache (php.ini, httpd.conf …etc)

Le php.ini (C:/wamp/www/bin/apache/apache2.4.18/php.ini) est en réalité un lien symbolique vers le fichier c:/wamp/bin/php/phpx.y.z/phpForApache.ini (où x.y.z est la version utilisée de php).
Donc je peux éditer l'un ou l'autre des fichiers pour modifier des paramètres de ma version x.y.z de PHP, et de préférence passer le menu de Wamp wamp > PHP > php.ini.
Les fichiers C:/Wamp/bin/php/phpx.y.z/php.ini-development et php.ini-production sont les valeurs conseillées pour les environnements respectifs développement et production.
Quant à C:/Wamp/bin/php/phpx.y.z/php.ini, c'est le fichier de configuration de php en ligne de commande

PHP-CLI

Le choix de la version de PHP en ligne de commande, va dépendre de la configuration de Windows et de la variable d'environnement path.
Pour éditer cette variable : panneau de configuration > Propiétés système > [variables d'environnement]  Variables d'environnement Path de Windows]