Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

code:server:wamp:phpini [16/07/2018 15:45] (Version actuelle)
elisabeth créée
Ligne 1: Ligne 1:
 +{{htmlmetatags>​metatag-robots=(index,​follow) metatag-author=(Elisabeth Pointal) metatag-keywords=(php.ini,​ wamp7) metatag-description=(Changement de version de php ou de MySQL avec Wamp3)}}
  
 +====== php.ini sous Wamp 3 ======
 +<​note>​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) </​note>​
 +
 +===== 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 :
 +<sxh php; first-line:​99;​ title: C:/​wamp/​scripts/​wampserver.lib.php>​
 +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);​
 +
 +}
 +</​sxh>​
 +
 +Cette fonction modifie tous les fichiers de configutation nécessaires de Apache (''​php.ini'',​ ''​httpd.conf''​ ...etc)
 +<note tip>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</​note>​
 +===== 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''​]
 +{{ :​code:​server:​variable-environnement-windows.png?​450 | Variables d'​environnement Path de Windows}}]
 +
 +----
 +**Contact**\\
 +Elisabeth Pointal\\
 +<​elisabeth.pointal@free.fr>​\\
 +[[http://​elisabeth.pointal.org/​cv|CV ]]\\
 +[[http://​elisabeth.pointal.org|Page perso ]]