1012

几年前,我在我维护的 Linux 服务器上安装了 Apache 2.2x 和 PHP 5.3.1。我使用 .tar.gz 并按照指示构建它们(而不是 rpm 和你有什么)。一切都很好。

今天我需要安装,它看起来像一个 PHP 库。我完成了安装的所有步骤,我在$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so.

最大的收获是最后一步是配置文件php.ini,但我的系统上没有任何 php.ini文件。恐怖的恐怖。PHP 工作正常,当然除了我想使用的这个新奇的 ibm_db2 thingamajig ,因此有人可以使用 GUI 来修补DB2。(我尝试了一个小的 PHP 脚本,该脚本失败并表明 ibm_db2 函数不可用。)

我必须每隔几年处理一次 PHP,所以请从一个非常基本的层面告诉我我可以做些什么来启用对 DB2 的基于 Web 的 GUI 访问。

4

13 回答 13

974

在命令行执行:

php --ini

你会得到类似的东西:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini

那来自我的本地开发机器。然而,第二行是有趣的。如果没有提及,请看第一个。那就是 PHP 查找php.ini文件的路径。

您可以在脚本中使用phpinfo() grep 相同的信息,并使用浏览器调用它。它在输出的第一个块中提到。php -i对命令行做同样的事情,但它很不舒服。

于 2011-12-30T22:22:45.173 回答
526

找到这个的最好方法是:

创建一个 PHP ( .php ) 文件并添加以下代码:

<?php phpinfo(); ?>

并在浏览器中打开它。它将显示实际正在读取的文件!

OP的更新:

  1. 先前接受的答案可能对您来说更快、更方便,但并不总是正确的。请参阅有关该答案的评论。
  2. 另请注意此答案<?php echo php_ini_loaded_file(); ?>中提到的更方便的替代方法。
于 2013-06-19T07:32:29.320 回答
159

这对我有用:

php -i | grep 'php.ini'

您应该会看到如下内容:

Loaded Configuration File => /usr/local/lib/php.ini

附言

要仅获取 php.ini 路径,请使用:

php -i | grep /.+/php.ini -oE
于 2013-04-02T11:48:31.307 回答
69

在命令窗口中,键入

php --ini

它将向您显示路径,例如:

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini

如果上述命令不起作用,请使用以下命令:

echo phpinfo();
于 2015-10-09T12:36:25.197 回答
36

使用以下命令php.ini在 Linux 上查找文件路径。

locate php.ini

输出:

/etc/php.ini
/etc/php.ini.rpmnew
/usr/share/doc/php-common-5.4.45/php.ini-development
/usr/share/doc/php-common-5.4.45/php.ini-production

或尝试其他方式:

php --ini

它显示了路径结果。

于 2016-02-17T10:58:28.340 回答
34

该命令应该可以帮助您找到它

php -r "phpinfo();" | grep php.ini
于 2015-01-09T15:41:02.807 回答
29

PHP 带有两个原生函数来显示加载了哪个配置文件:

根据您的设置,ApacheCLI可能使用不同的 .ini 文件。以下是两种解决方案:

阿帕奇:

只需在 PHP (.php) 文件中添加以下内容并在浏览器中打开它:

print php_ini_loaded_file();
print_r(php_ini_scanned_files());

命令行:

复制粘贴到您的终端:

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
于 2014-06-21T14:19:26.903 回答
26
phpinfo();

会告诉你它的位置,或者从命令行

php -i
于 2011-12-30T22:24:05.063 回答
19

在命令行中运行它:

php -r "echo php_ini_loaded_file().PHP_EOL;"
于 2020-06-24T21:30:10.883 回答
15

尝试其中一种解决方案

  1. 在您的终端中,键入find / -name "php.ini"

  2. 在您的终端中,输入 php -i | grep php.ini. 它应该将文件路径显示为“配置文件 (php.ini) 路径 => /etc”

  3. 如果您可以访问其中一个 PHP 文件,请在编辑器(记事本phpinfo();)中将其打开,然后<?php在新行中插入。这将告诉您php.ini的位置。

  4. 您还可以在交互模式下与 PHP 交谈。只需php -a在终端输入并phpinfo();在 PHP 解释器启动后输入。

于 2019-06-07T16:57:07.370 回答
7
find / -name php.ini

嘿......它对我有用!

于 2014-12-22T07:22:11.697 回答
4

您可以使用以下方式获取有关配置文件的更多信息:

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini
于 2011-12-30T22:25:22.810 回答
4

对于SAPI:php-fpm

没有任何必要创建php.info文件(无论如何,让世界阅读它并不是一个好政策)。在命令行上:

php-fpm -i | more

在其输出的某处,它将显示这一行:

Configuration File (php.ini) Path => /etc

这是一个更完整的解释: How to figure out Your PHP Configuration Parameters without info.php

于 2015-11-17T15:16:51.953 回答