如何知道使用的是哪个‘ php.ini’文件?

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

92443 次浏览

您必须使用 PHP 方法 php_ini_loaded_file(仅在 PHP 5.2.4之后)

Php _ ini _ load _ 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';
}
?>

资料来源: PHP 站点

创建一个简单的页面,它将被列在那里!

<?php


phpinfo();


?>

只需添加如下文件:

<?php
phpinfo();
?>

那就去找

Loaded Configuration File

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

php --ini

对于 webserver-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

你可以使用 Php _ ini _ load _ 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 _ scanner _ files ()

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

其他选择:

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

注意,在控制台中使用 PHP 时加载的配置与 web 进程的配置不同。大多数 PHP 安装都会附带一个用于 Apache 的 Php.ini文件和另一个用于 CLI 的 Php.ini文件。

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

php -i | grep "Configuration File"

要了解 Web 进程使用哪个配置文件,请按照以下步骤操作

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

如前所述,“ find/-name php.ini”将帮助获取所有 Php.ini文件。您可能正在编辑的内容可能不是服务器从中提取命令的内容!我在我的服务器上找到了三个不同版本的 PHP 的 Php.ini,然后我立即得到了修复。