我怎么知道使用了哪个“php.ini”文件?

2022-08-30 08:30:49

我搜索了php.ini文件在我们的Linux Ubuntu服务器中所在的路径,并且在执行命令时发现了许多php.ini文件。那么我怎么能从PHP脚本网页上确切地知道php.ini的位置呢?find / -name php.ini


答案 1
php --ini

对于 Web 服务器 - SAPI 使用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

答案 2

您可以使用 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';
}

您可能还需要检查php_ini_scanned_files()。

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

其他选项:

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

推荐