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
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
Les fichiers
Quant à
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
]
]
Contact
Elisabeth Pointal
elisabeth.pointal@free.fr
CV
Page perso