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
- Create an info file [preferably in the root folder]
- The contents of this file should be
<?php phpinfo(); ?>
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