web-dev-qa-db-fra.com

Mec, 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 gère. 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 this qui ressemble à une bibliothèque PHP. Je suis passé par toutes les étapes pour faire l'installation, et je trouve ibm_db2.so dans $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

La bonne chose à faire est que la dernière étape consiste à configurer php.ini mais il n’ya AUCUN php.ini sur mon système. Horreur des horreurs. PHP fonctionne bien, sauf bien sûr pour cette chose nouvelle ibm_db2 que je veux utiliser afin que quelqu'un puisse utiliser une interface graphique pour bricoler avec 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. Veuillez m'éclairer à un niveau très élémentaire sur ce que je pourrais faire pour permettre l'accès via une interface graphique Web à DB2.

826
necromancer

Le meilleur moyen de le savoir est de créer un fichier php et d’ajouter le code suivant:

<?php phpinfo(); ?>

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

Mises à jour par OP:

  1. Le précédent réponse sera probablement plus rapide et plus pratique pour vous, mais ce n’est pas toujours correct. Voir les commentaires sur cette réponse.
  2. Veuillez également noter l'alternative plus pratique <?php echo php_ini_loaded_file(); ?> mentionnée dans cette réponse .
433
Tejas

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

Cela vient de ma dev-machine locale. Cependant, la deuxième ligne est la plus intéressante. Si rien n'est 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 l'appelez 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.

779
KingCrunch

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
120
coderama

Dans le type de fenêtre de commande

php --ini

Il va vous montrer 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 commande.

echo phpinfo();
63
bibliophilsagar

Cette commande devrait vous aider à le trouver

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

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
sa montre le résultat du chemin

29
Sakthi Karthik
phpinfo();

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

php -i
26
user557846

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

Selon votre configuration, Apache et CLI peuvent utiliser un ini différent des dossiers. 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());'
20
Creaforge
find / -name php.ini

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

6
Banned_User

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
Mike Purcell

Pour SAPI: php-fpm

Il n'est pas nécessaire de créer un fichier php.info (ce n'est pas une bonne politique de laisser le monde le 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/

Essayez l'une de ces solutions

  1. Dans votre terminal, tapez find / -name "php.ini"

  2. Dans votre terminal, tapez php -i | grep php.ini. Il devrait afficher le chemin du fichier sous la forme Configuration File (php.ini) Path => /etc

  3. Si vous pouvez accéder à l'un de vos fichiers php, ouvrez-le dans un éditeur (bloc-notes) et insérez le code ci-dessous après <?php dans une nouvelle ligne phpinfo(); Cela vous indiquera l'emplacement du fichier php.ini.
  4. Vous pouvez également parler à php en mode interactif. Tapez simplement php -a dans le terminal et tapez phpinfo (); après php initié.
3
cherankrish