Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里可以找到php.ini?_Php_Linux_Php Ini - Fatal编程技术网

在哪里可以找到php.ini?

在哪里可以找到php.ini?,php,linux,php-ini,Php,Linux,Php Ini,几年前,我在维护的Linux服务器上安装了Apache2.2x和PHP5.3.1。我使用了.tar.gz,并按照说明构建了它们(而不是RPM和其他东西)。一切都很好 今天我需要安装一个PHP库。我完成了安装的所有步骤,在$PHP\u HOME/lib/extensions/somecomplexdname/ibm\u db2.so中找到了ibm\u db2.so 最大的问题是最后一步是配置php.ini,但我的系统上没有php.ini。恐怖的恐怖。PHP工作得很好,当然除了我想使用的这种新型ib

几年前,我在维护的Linux服务器上安装了Apache2.2x和PHP5.3.1。我使用了.tar.gz,并按照说明构建了它们(而不是RPM和其他东西)。一切都很好

今天我需要安装一个PHP库。我完成了安装的所有步骤,在
$PHP\u HOME/lib/extensions/somecomplexdname/ibm\u db2.so中找到了ibm\u db2.so

最大的问题是最后一步是配置php.ini,但我的系统上没有php.ini。恐怖的恐怖。PHP工作得很好,当然除了我想使用的这种新型ibm_db2 Thingmagic,以便有人可以使用GUI修补
db2
。(我尝试了一个小的php脚本,它失败了,表明ibm_db2函数不可用)


我每隔几年就要处理一次PHP,因此请在一个非常基本的层面上告诉我,我可以做些什么来支持基于web的GUI访问命令行上的
DB2

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 -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini
Loaded Configuration File => /usr/local/lib/php.ini
这是我本地开发机器上的。然而,第二行是有趣的一行。如果没有提及,请看第一个。这就是PHP查找
PHP.ini
的路径

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

phpinfo();
将告诉您其位置,或从命令行

php -i

您可以通过以下方式获得有关配置文件的更多信息:

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 -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini
Loaded Configuration File => /usr/local/lib/php.ini
这对我很有用:

php -i | grep '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 -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini
Loaded Configuration File => /usr/local/lib/php.ini
p、 美国。 仅获取php.ini路径

php -i | grep /.+/php.ini -oE
找到这一点的最佳方法是: 创建一个php文件并添加以下代码:

<?php phpinfo(); ?>

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

OP更新:

  • 以前接受的方法可能会更快、更方便,但并不总是正确的。见对该答案的评论
  • 还请注意中提到的更方便的备选方案

  • PHP附带两个本机函数来显示加载了哪个配置文件:

    • 返回加载的ini文件
    • 返回从附加ini目录解析的.ini文件列表
    根据您的设置,ApacheCLI可能使用不同的ini文件。以下是两种解决方案:

    阿帕奇: 只需在php文件中添加以下内容并在浏览器中打开它

    print php_ini_loaded_file();
    print_r(php_ini_scanned_files());
    
    CLI: 在终端中复制粘贴:

    php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
    

    嘿。。。这对我有用

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

    php -r "phpinfo();" | grep php.ini
    
    在命令窗口类型中

    php --ini
    
    它将向您显示类似的路径

    Configuration File (php.ini) Path: /usr/local/lib
    Loaded Configuration File:         /usr/local/lib/php.ini
    
    如果上述命令不起作用,则使用此命令

    echo phpinfo();
    
    对于SAPI:php-fpm

    不需要创建php.info文件(不管怎样,把它留给全世界阅读不是一个好的策略)。在命令行上:

    php-fpm -i | more
    
    在其输出的某处,它将显示以下行:

    Configuration File (php.ini) Path => /etc
    
    下面是一个更完整的解释:

    使用以下命令在linux中查找
    php.ini
    文件路径

    [root@AnyDirectory ~]# 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
    

    或者换一种方式试试

    [root@AnyDirectory~]#php--ini
    


    它显示路径结果

    查找php.ini文件有几种有效的方法,但是如果您看到此页面是因为您想在bash脚本中使用它:

    path_php_ini=“$(php-i | grep”配置文件(php.ini)路径“| grep-oP'(?\s)。*”)
    
    echo${path\u php\u ini}

    尝试此解决方案之一

  • 在您的终端类型中
    find/-name“php.ini”

  • 在您的终端类型中
    php-i | grep php.ini
    。它应该显示 文件路径为
    配置文件(php.ini)路径=>/etc

  • 如果您可以访问一个php文件,请在编辑器(记事本)中打开它
    并在
    之后插入以下代码在命令行中运行此命令:

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

    接受最古老和以前最简单的答案(因此迫使我在接受之前等待一段时间)。感谢您的扩展,这可能会帮助下一个人寻找信息。对我来说,第二行是(无),在第一行的路径中放了一个php.ini文件后,一切都很好。谢谢我使用这个命令编辑了php.ini文件,它也指导了我,我的php设置没有改变,我意识到它没有给我正确的php.ini文件。我尝试使用phpinfo()PHP函数,它给出了需要编辑的PHP.ini的实际正确位置。我认为这是非常重要的,我希望这能帮助一些人。@Commonthread感谢您指出您在实践中遇到的问题。我已将接受的答案更改为突出显示创建
    .php
    文件的答案。顺便说一句,如果你对这个问题发表评论,我会得到通知,我可以更快地解决问题。@Pacerier这与不同的PHP安装无关,但是不同的SAPI可以使用不同的ini文件。我不使用apache模块,但据我记忆所及,我认为类似于
    phpinfo.php
    -like文件是不可能的。使用FPM,您至少可以使用
    php5 FPM-i | grep'\.ini'
    。通常您会使用此选项两到三次,并且在一天结束时您会知道文件在哪里;)最后我也编辑了错误的ini文件,浪费了一个小时。这可能是我自己的愚蠢,但这是对像我这样的人的一个警告-如果它不起作用,创建一个如上所述的,因为它只适用于meThis,如果有一个
    php.ini
    ,这正是问题所在:如果没有,你仍然不知道去哪里看,我从来没有遇到过没有php.ini文件的情况。运行这个命令会给我
    配置文件(php.ini)路径=>/usr/lib
    ,但运行
    会给我
    L