如何知道使用哪个php.ini?

phe*_*mix 51 php php-ini

我在Linux Ubuntu服务器中搜索php.ini文件所在的路径,在执行命令时发现了很多php.ini find / -name php.ini.那么如何从一个php脚本网页中确切地知道php.ini所在的位置?

Kin*_*nch 78

php --ini
Run Code Online (Sandbox Code Playgroud)

对于webserver-SAPIs使用 phpinfo()

这是一些示例输出:

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
Run Code Online (Sandbox Code Playgroud)


Vla*_*eda 55

你可以使用php_ini_loaded_file()

来自php.net:

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

您可能还想检查php_ini_scanned_files()

此外,您应该注意,如果从CLI运行PHP脚本,则可能php.ini会使用与服务器(即nginx或apache)运行不同的文件.

其他选择:

  • php -i|grep 'php.ini'
  • 创建info.php包含<?php phpinfo();在webroot中的内容,并在浏览器中运行它


iGb*_*nam 10

请注意,在控制台上使用PHP时为PHP加载的配置与Web进程的配置不同.大多数PHP安装都会附带一个用于apache的php.ini和另一个用于CLI的PHP.

要知道哪个配置文件用于控制台命令,请使用

$ php -i | grep "Configuration File"
Run Code Online (Sandbox Code Playgroud)

要了解用于Web进程的配置文件,请按照下列步骤操作

  1. 创建信息文件[最好在根文件夹中]
  2. 该文件的内容应该是 <?php phpinfo(); ?>
  3. Ctrl+F 并搜索"配置文件"


Vah*_*and 6

只需添加一个这样的文件:

<?php
    phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)

然后寻找

Loaded Configuration File
Run Code Online (Sandbox Code Playgroud)

您将看到php.ini文件的完整路径。


dar*_*eir 5

你必须使用php方法php_ini_loaded_file(仅在php 5.2.4之后)

php_ini_loaded_file - 检索加载的php.ini文件的路径

php网站示例:

<?php
$inipath = php_ini_loaded_file();

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

来源:php网站