Question Où est mon php.ini?


Il y a quelques années j'ai installé Apache 2.2x et PHP 5.3.1 sur un serveur Linux que je maintiens. J'ai utilisé .tar.gz et les ai construits comme indiqué (au lieu de rpms et what-have-you). Et tout allait bien.

Aujourd'hui j'ai besoin d'installer ce ce qui ressemble à une bibliothèque PHP. J'ai parcouru toutes les étapes pour installer, et je trouve ibm_db2.so dans $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

La grande prise est la dernière étape est de configurer php.ini mais il n'y a pas de php.ini sur mon système. Horreur des horreurs. PHP fonctionne bien, sauf bien sûr pour ce thingamagic ibm_db2 que je veux utiliser afin que quelqu'un puisse utiliser une interface graphique pour bricoler DB2. (J'ai essayé un petit script php qui échoue et indique que les fonctions ibm_db2 ne sont pas disponibles).

Je dois traiter avec PHP une fois toutes les quelques années, alors s'il vous plaît éclairer moi à un niveau très basique sur ce que je pourrais faire pour permettre l'accès de l'interface graphique Web à DB2.


718
2017-12-30 22:20


origine


Réponses:


Le meilleur moyen de trouver ceci est: créez un fichier php et ajoutez le code suivant:

<?php phpinfo(); ?>

et l'ouvrir dans le navigateur, il montrera le fichier qui est en train d'être lu!

Mises à jour par OP:

  1. Le précédemment accepté répondre est susceptible d'être plus rapide et plus pratique pour vous, mais ce n'est pas toujours correct. Voir les commentaires sur cette réponse.
  2. S'il vous plaît noter également l'alternative plus pratique <?php echo php_ini_loaded_file(); ?> mentionné dans cette réponse.

352
2018-06-19 07:32



Sur la ligne de commande, exécutez:

php --ini

Vous obtiendrez quelque chose comme:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini

C'est de mon dev-machine local. Cependant, la deuxième ligne est la plus intéressante. S'il n'y a rien mentionné, regardez le premier. C'est le chemin, où PHP cherche le php.ini.

Vous pouvez grep la même information en utilisant phpinfo() dans un script et appelez-le avec un navigateur. Son mentionné dans le premier bloc de la sortie. php -i fait la même chose pour la ligne de commande, mais c'est assez inconfortable.


669
2017-12-30 22:22



Cela fonctionne pour moi:

php -i | grep 'php.ini'

Vous devriez voir quelque chose comme:

Loaded Configuration File => /usr/local/lib/php.ini

p.s. Pour obtenir uniquement le chemin php.inin

php -i | grep /.+/php.ini -oE

88
2018-04-02 11:48



Dans le type de fenêtre de commande

php --ini

Il vous montrera le chemin quelque chose comme

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini

Si la commande ci-dessus ne fonctionne pas, utilisez cette

echo phpinfo();

58
2017-10-09 12:36



Cette commande devrait vous aider à le trouver

php -r "phpinfo();" | grep php.ini

31
2018-01-09 15:41



Utilisez les commandes suivantes pour trouver le php.ini chemin du fichier dans Linux.

[root@AnyDirectory ~]# locate php.ini
/etc/php.ini
/etc/php.ini.rpmnew
/usr/share/doc/php-common-5.4.45/php.ini-development
/usr/share/doc/php-common-5.4.45/php.ini-production


ou essayez ceci d'une autre manière

[root@AnyDirectory ~]# php --ini
son montre le résultat du chemin


25
2018-02-17 10:58



phpinfo();

vous dira son emplacement, ou à partir de la ligne de commande

php -i

22
2017-12-30 22:24



PHP vient avec deux fonctions natives pour montrer quel fichier de configuration est chargé:

Selon votre configuration, Apache et CLI pourrait utiliser différents fichiers ini. Voici les deux solutions:

Apache:

Ajoutez simplement ce qui suit dans un fichier php et ouvrez-le dans votre navigateur

print php_ini_loaded_file();
print_r(php_ini_scanned_files());

CLI:

Copiez-collez dans votre terminal:

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'

19
2018-06-21 14:19



find / -name php.ini

Hé ... ça a marché pour moi!


6
2017-12-22 07:22



Vous pouvez obtenir plus d'informations sur vos fichiers de configuration en utilisant quelque chose comme:

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini

4
2017-12-30 22:25