web-dev-qa-db-fra.com

Comment savoir quel php.ini est utilisé?

Je recherche le chemin où se trouve le fichier php.ini sur notre serveur Linux Ubuntu, et j'ai trouvé beaucoup de php.ini lors de l'exécution de la commande find / -name php.ini. Alors, comment savoir exactement à partir d'une page Web de script php où se trouve le php.ini?

46
pheromix

Vous pouvez utiliser php_ini_loaded_file ()

Tiré de php.net:

$inipath = php_ini_loaded_file();
if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
    echo 'A php.ini file is not loaded';
}

Vous pouvez également vérifier php_ini_scanned_files ()

En outre, vous devez noter que si vous exécutez un script PHP à partir de la CLI, il est possible qu'un fichier php.ini Différent soit utilisé que si un serveur (c.-à-d. Nginx ou Apache) s'exécute il.

Autres options:

  • php -i|grep 'php.ini'
  • créez info.php qui contient <?php phpinfo(); dans la racine Web, et exécutez-le dans votre navigateur
54
Vlad Preda
php --ini

Pour les serveurs Web-SAPI, utilisez phpinfo()

Voici quelques exemples de sortie:

bash-3.2# php --ini
Configuration File (php.ini) Path: /usr/local/php5/lib
Loaded Configuration File:         /usr/local/php5/lib/php.ini
Scan for additional .ini files in: /usr/local/php5/php.d
Additional .ini files parsed:      /usr/local/php5/php.d/10-extension_dir.ini,
/usr/local/php5/php.d/20-extension-opcache.ini,
/usr/local/php5/php.d/40-openssl.ini,
/usr/local/php5/php.d/50-extension-apcu.ini,
/usr/local/php5/php.d/50-extension-curl.ini,
/usr/local/php5/php.d/50-extension-gmp.ini,
/usr/local/php5/php.d/50-extension-imap.ini,
/usr/local/php5/php.d/50-extension-intl.ini,
/usr/local/php5/php.d/50-extension-mcrypt.ini,
/usr/local/php5/php.d/50-extension-mssql.ini,
/usr/local/php5/php.d/50-extension-pdo_pgsql.ini,
/usr/local/php5/php.d/50-extension-pgsql.ini,
/usr/local/php5/php.d/50-extension-propro.ini,
/usr/local/php5/php.d/50-extension-raphf.ini,
/usr/local/php5/php.d/50-extension-readline.ini,
/usr/local/php5/php.d/50-extension-xdebug.ini,
/usr/local/php5/php.d/50-extension-xsl.ini,
/usr/local/php5/php.d/60-extension-pecl_http.ini,
/usr/local/php5/php.d/99-liip-developer.ini
71
KingCrunch

Notez que la configuration chargée pour PHP lorsqu'elle est utilisée sur la console est différente de la configuration pour le processus Web. La plupart des installations PHP viendraient avec un php .ini pour Apache et un autre pour CLI.

Pour savoir quel fichier de configuration est utilisé pour les commandes de la console, utilisez

$ php -i | grep "Configuration File"

Pour savoir quel fichier de configuration est utilisé pour les processus Web, procédez comme suit

  1. Créez un fichier d'informations [de préférence dans le dossier racine]
  2. Le contenu de ce fichier doit être <?php phpinfo(); ?>
  3. Ctrl+F Et recherchez "Fichier de configuration"
10
iGbanam

Vous devez utiliser la méthode php php_ini_loaded_file (uniquement après php 5.2.4)

php_ini_loaded_file - Récupère un chemin vers le fichier php.ini chargé

exemple de site web php:

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Loaded php.ini: ' . $inipath;
} else {
    echo 'A php.ini file is not loaded';
}
?>

Source: site php

5
darkheir

il suffit de mettre un fichier comme celui-ci:

<?php
phpinfo();
?>

Cherchez ensuite

Loaded Configuration File

vous verrez le chemin complet du fichier php.ini

3
Vahid Farahmand

Créez une page simple et elle y sera répertoriée!

<?php

phpinfo();

?>
2
Lee Armstrong

Comme mentionné, "find/-name php.ini" aidera à obtenir tous les fichiers php.ini. Celui que vous modifiez peut-être pas celui dont le serveur tire la commande! J'ai trouvé php.ini pour 3 versions différentes de php sur mon serveur et j'ai obtenu le correctif instantanément.

0
Jayanta Deka