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?
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'
info.php
qui contient <?php phpinfo();
dans la racine Web, et exécutez-le dans votre navigateurphp --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
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
<?php phpinfo(); ?>
Ctrl+F
Et recherchez "Fichier de configuration"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
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
Créez une page simple et elle y sera répertoriée!
<?php
phpinfo();
?>
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.