web-dev-qa-db-fra.com

Comment changer le chemin d'accès à php.ini dans PHP Version CLI

Le php qui s'exécute sur le serveur Web et la version de la CLI n'utilise pas le même fichier php.ini. Si je fais une commande php --ini, cela affichera ceci

Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         C:\wamp\bin\php\php5.3.8\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

ma version Web utilise le php.ini dans C:\wamp\bin\Apache\Apache2.2.21\bin\php.ini. Ceci est probablement très courant chez les personnes qui utilisent wamp.

Comment puis-je changer le fichier de configuration chargé pour lire à partir de C:\wamp\bin\Apache\Apache2.2.21\bin\php.ini afin de ne pas avoir à maintenir 2 versions de php.ini différentes?

23
Sufendy

Per http://php.net/configuration.file :

php.ini est recherché dans ces emplacements (dans l'ordre):

  • Emplacement spécifique du module SAPI (directive PHPIniDir dans Apache 2, option de ligne de commande -c dans CGI et CLI, paramètre php_ini dans NSAPI, variable d'environnement PHP_INI_PATH dans THTTPD)
  • La variable d'environnement PHPRC. Avant PHP 5.2.0, cela a été vérifié après la clé de registre mentionnée ci-dessous.
  • Depuis PHP 5.2.0, l'emplacement du fichier php.ini peut être défini pour différentes versions de PHP. Les clés de registre suivantes sont examinées dans l’ordre:
    • [HKEY_LOCAL_MACHINE\LOGICIEL\PHP\xyz], [HKEY_LOCAL_MACHINE\LOGICIEL\PHP\xy] et [HKEY_LOCAL_MACHINE\LOGICIEL\PHP\x], où x, y et z signifie la PHP majeur, libéré versions. S'il existe une valeur pour IniFilePath dans l'une de ces clés, la première trouvée sera utilisée comme emplacement du fichier php.ini (Windows uniquement).
    • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP], valeur de IniFilePath (Windows uniquement).
  • Répertoire de travail actuel (sauf CLI).
  • Répertoire du serveur Web (pour les modules SAPI) ou répertoire PHP (sinon sous Windows).
  • Répertoire Windows (C:\windows ou C:\winnt) (pour Windows) ou l'option de compilation --with-config-fichier-chemin-chemin.

Pour la CLI, la meilleure solution consiste probablement à définir la variable d'environnement $PHPRC pour le compte qui exécutera les scripts, ou à recompiler PHP avec un paramètre de configuration --with-config-file-path différent.

Vous pouvez également remplacer le répertoire de recherche php.ini par exécution en spécifiant l'option -c lors de l'appel de PHP:

> php --help 
 Utilisation: php [options] [-f] [-] [args ...] 
...
 -c | Cherchez le fichier php.ini dans ce répertoire 

18
user212218

En spécifiant la variable d'environnement PHPRC pour qu'elle pointe vers le même fichier php.ini que celui utilisé par Apache pour Ubuntu

export PHPRC=/etc/php5/Apache2/php.ini

Ou mettez-le dans $ HOME/.bashrc pour importer chaque fois que vous démarrez cli

8
latvian

J'ai passé environ 3 heures à essayer de répondre exactement à votre question. Je ne pouvais pas le faire. J'ai abandonné et copié ce php.ini dans C:\Windows et changé ma variable ENV "PHPRC" en C:\Windows (et dans httpd.conf). De cette façon, mes CLI php et Apach php e utilisent le même fichier. Je ne pouvais pas obtenir "php -m" pour afficher les modules que j'avais chargés dans mon php.ini pour la vie de moi jusqu'à ce que je fasse ce changement ...

1
Andrew

essayez de lancer la fonction phpinfo() des deux côtés 

Serveur Web et CLI et découvrez l'emplacement exact de votre fichier php.ini pour les deux côtés

et maintenir ces fichiers seulement

0
maxjackie