老兄,我的 php.ini 在哪里? (哪个目录)

问题描述 投票:0回答:14

几年前,我在自己维护的 Linux 服务器上安装了 Apache 2.2x 和 PHP 5.3.1。我使用 .tar.gz 并按照说明构建它们(而不是 rpm 和您拥有的东西)。一切都很好。

今天我需要安装this,它看起来像一个 PHP 库。我完成了 make install 的所有步骤,并在

$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so
中找到了 ibm_db2.so。

最大的问题是最后一步是配置文件 php.ini,但我的系统上没有 任何 php.ini 文件。恐怖中的恐怖。 PHP 工作得很好,当然除了我想使用的这个新奇的 ibm_db2 thingamajig,这样有人就可以使用 GUI 来修改 DB2。 (我尝试了一个小的 PHP 脚本,但失败并表明 ibm_db2 函数不可用。)

我必须每隔几年处理一次 PHP,所以请从非常基础的层面上启发我,了解我可以做什么来启用基于 Web 的 GUI 访问 DB2。

php linux php-ini
14个回答
1054
投票

在命令行执行:

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
对命令行也做了同样的事情,但是很不舒服。


543
投票

找到这个的最好方法是:

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

<?php phpinfo(); ?>

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

OP 更新:

  1. 之前接受的答案可能对您来说更快更方便,但并不总是正确的。查看对该答案的评论。
  2. 另请注意
    这个答案
    中提到的更方便的替代方案<?php echo php_ini_loaded_file(); ?>

167
投票

这对我有用:

php -i | grep 'php.ini'

您应该看到类似以下内容:

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

附注

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

php -i | grep /.+/php.ini -oE

72
投票

在命令窗口中,键入

php --ini

它会向您显示类似以下的路径:

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

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

echo phpinfo();

41
投票

使用以下命令查找Linux上的

php.ini
文件路径。

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

显示路径结果。


35
投票

这个命令应该可以帮助你找到它

php -r "phpinfo();" | grep php.ini

31
投票

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());'

27
投票
phpinfo();

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

php -i

21
投票

在命令行中运行:

php -r "echo php_ini_loaded_file().PHP_EOL;"

21
投票

尝试以下解决方案之一

  1. 在终端中输入

    find / -name "php.ini"

  2. 在终端中输入

    php -i | grep php.ini
    。它应该将文件路径显示为 “配置文件 (php.ini) Path => /etc”

  3. 如果您可以访问其中一个 PHP 文件,请在编辑器 (Notepad) 中打开它,然后在新行的

    phpinfo();
    之后插入
    <?php
    。这将告诉您 php.ini 位置。

  4. 您还可以以交互模式与 PHP 对话。只需在终端中输入

    php -a
    ,然后在 PHP 解释器启动后输入
    phpinfo();


7
投票
find / -name php.ini

嘿...这对我有用!


4
投票

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

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

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini

4
投票

对于 SAPI:php-fpm

没有必要创建 php.info 文件(无论如何,将其留给全世界都不是一个好策略)。在命令行上:

php-fpm -i | more

在其输出中的某个位置,它将显示这一行:

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

这里有更完整的解释: 如何在没有 info.php 的情况下找出 PHP 配置参数


0
投票

根据这个答案,从PHP 7开始,常规的php.ini文件已被删除并添加了

php.ini-production
php.ini-devlopment

所以不要使用我的情况下不存在的php.ini(我已经安装了php 8.1),而是使用

php.ini-production
,它位于php安装文件夹中(类似于:
C:\PHP-8.1.5
)并创建一个文件并将其命名为
 php.ini
,然后将
php.ini-production
的内容复制到这个新的
php.ini
中。

© www.soinside.com 2019 - 2024. All rights reserved.