How to know which php.ini is used?

2019-01-14 00:52发布

问题:

I search the path where the php.ini file is located in our Linux Ubuntu server, and I found many php.ini when executing the command find / -name php.ini . So how to know exactly from a php script web page where the php.ini is located ?

回答1:

You can use php_ini_loaded_file()

Taken from php.net:

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

You may also want to check php_ini_scanned_files()

Also, you should note that if you run a PHP script from CLI, it's possible that a different php.ini file will be used than if a server (ie nginx or apache) runs it.

Other options:

  • php -i|grep 'php.ini'
  • create info.php that contains <?php phpinfo(); in the webroot, and run it in your browser


回答2:

php --ini

For the webserver-SAPIs use phpinfo()

Here's some sample output:

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


回答3:

Note that the configuration loaded for PHP when it's being used on the console is different from the configuration for the web process. Most PHP installations would come with a php.ini for apache and another for CLI.

To know which configuration file is used for the console commands, use

$ php -i | grep "Configuration File"

To know which configuration file is used for the web processes, follow these steps

  1. Create an info file [preferably in the root folder]
  2. The contents of this file should be <?php phpinfo(); ?>
  3. Ctrl+F and search for "Configuration File"


回答4:

You have to use the php method php_ini_loaded_file (only after php 5.2.4)

php_ini_loaded_file — Retrieve a path to the loaded php.ini file

php website example:

<?php
$inipath = php_ini_loaded_file();

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

Source: php site



回答5:

Create a simple page and it will be listed there!

<?php

phpinfo();

?>


回答6:

just put a file like this:

<?php
phpinfo();
?>

Then look for

Loaded Configuration File

you'll see full path for php.ini file



标签: php php-ini