Mec, où est mon php.ini?

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

Aujourd'hui, je dois installer Ce qui ressemble à une bibliothèque PHP. Je suis passé par toutes les étapes pour faire installer, et je trouve ibm_db2.so dans $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

Le Grand hic est que la dernière étape consiste à configurer php.ini mais il n'y a pas de php.ini sur mon système. Horreur des horreurs. PHP fonctionne très bien, sauf bien sûr pour cette nouvelle chose ibm_db2 que je veux utiliser pour 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 faire face à PHP Une fois toutes les quelques années, alors veuillez m'éclairer à un niveau très basique sur ce que je pourrais faire pour permettre l'accès à l'interface graphique sur le web à DB2.

735
demandé sur Grant Miller 2011-12-31 02:20:06

12 réponses

La meilleure façon de trouver ceci est: créer un fichier php et ajoutez le code suivant:

<?php phpinfo(); ?>

Et ouvrez-le dans le navigateur, il affichera le fichier qui est en cours de lecture!

Mises à jour par OP:

  1. préalablement accepté réponse est susceptible d'être plus rapide et plus pratique pour vous, mais il n'est pas toujours correcte. Voir les commentaires sur cette réponse.
  2. veuillez également noter l'alternative la plus pratique <?php echo php_ini_loaded_file(); ?>mentionnée dans cette réponse.
368
répondu Tejas 2017-06-27 15:55:12

Sur la ligne de commande exécuter:

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

Ça vient de ma machine de développement locale. Cependant, la deuxième ligne est intéressant. Si rien n'est mentionné, jetez un oeil à la première. C'est le chemin, où PHP cherche le php.ini.

Vous pouvez grep les mêmes informations en utilisant phpinfo() dans un script et l'appeler 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 tout à fait aise.

683
répondu KingCrunch 2014-01-14 02:43:57

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 seulement le php.dansdans chemin

php -i | grep /.+/php.ini -oE
94
répondu coderama 2018-07-16 06:40:09

Dans la fenêtre de commande tapez

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 ceci

echo phpinfo();
58
répondu bibliophilsagar 2015-10-09 12:36:25

Cette commande devrait vous aider à la trouver

php -r "phpinfo();" | grep php.ini
31
répondu Rimantas Jacikevicius 2015-01-09 16:59:39

Utilisez les commandes suivantes pour trouver le chemin du fichier php.ini sous 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
il montre le résultat du chemin

27
répondu Sakthi Karthik 2017-11-22 05:04:25
phpinfo();

Vous indiquera son emplacement, ou à partir de la ligne de commande

php -i
22
répondu Leniel Maccaferri 2012-08-15 14:32:24

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

Selon votre configuration, Apache et CLI peuvent 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:

Copier-coller dans votre terminal :

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
19
répondu Creaforge 2014-10-06 14:28:48
find / -name php.ini

Hey... il a travaillé pour moi!

6
répondu Banned_User 2014-12-22 07:22:11

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
répondu Mike Purcell 2011-12-30 22:25:22

Pour SAPI: php-fpm

Il N'est pas nécessaire de créer un php.info fichier (ce n'est pas une bonne politique de le laisser au monde pour lire de toute façon). Sur la ligne de commande:

php-fpm -i | more

Quelque part dans sa sortie, il affichera cette ligne:

Configuration File (php.ini) Path => /etc

Voici une explication plus complète: https://www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/

3
répondu NightKnight on Cloudinsidr.com 2015-12-23 07:48:29

Il existe plusieurs moyens valables déjà mentionnés pour localiser le php.fichier ini, mais si vous arrivé sur cette page parce que vous voulez faire quelque chose avec elle dans un script bash:

path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')" echo ${path_php_ini}

-1
répondu Cragmonkey 2017-01-04 04:37:18