伙计,我的php.ini在哪里?
几年前,我在我维护的Linux服务器上安装了Apache 2.2x和PHP 5.3.1。 我使用了.tar.gz,并按照指示构build它们(而不是rpms和what-have-you)。 一切都很好。
今天我需要安装这看起来像一个PHP库。 我完成了所有安装步骤,并且在$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so
ibm_db2.so中find了$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so
最大的困难是最后一步是configurationphp.ini,但在我的系统上没有php.ini。 恐怖的恐怖。 PHP工作正常,当然除了这个新的ibm_db2 thingamagic,我想要使用,所以有人可以使用GUI修补与DB2
。 (我尝试了一个小php脚本失败,并表示ibm_db2函数不可用)。
我必须每隔几年处理一次PHP,所以请在最基本的层面告诉我,我能做些什么来启用基于Web的GUI访问DB2
。
find这个最好的方法是:创build一个PHP文件,并添加以下代码:
<?php phpinfo(); ?>
并在浏览器中打开,会显示正在读取的文件!
OP的更新:
- 以前接受的答案可能会更快,更方便,但并不总是正确的。 请参阅有关该答案的评论。
- 还请注意更方便的替代
<?php echo php_ini_loaded_file(); ?>
<?php echo php_ini_loaded_file(); ?>
在这个答案中提到。
在命令行上执行:
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
的path。
您可以在脚本中使用phpinfo()
来phpinfo()
相同的信息,并用浏览器调用它。 它在输出的第一部分提到。 php -i
在命令行中的function相同,但是相当不舒服。
这适用于我:
php -i | grep 'php.ini'
你应该看到像这样的东西:
Loaded Configuration File => /usr/local/lib/php.ini
在命令窗口中键入
php --ini
它会告诉你这样的path
Configuration File (php.ini) Path: /usr/local/lib Loaded Configuration File: /usr/local/lib/php.ini
如果上面的命令不起作用,那么使用这个
echo phpinfo();
这个命令应该可以帮助你find它
php -r "phpinfo();" | grep php.ini
phpinfo();
会告诉你它的位置,或者从命令行
php -i
使用以下命令查找php.ini
文件path。
[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
它显示了path结果
PHP有两个本地函数来显示哪个configuration文件被加载:
- php_ini_loaded_file返回加载的ini文件
- php_ini_scanned_files返回从额外的ini目录parsing.ini文件的列表
根据您的设置, Apache和CLI可能使用不同的ini文件。 这里有两个解决scheme:
Apache:
只需在php文件中添加以下内容,然后在浏览器中打开它
print php_ini_loaded_file(); print_r(php_ini_scanned_files());
CLI:
复制粘贴到您的terminal中:
php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
find / -name php.ini
嘿…它为我工作!
你可以使用类似的东西获得更多关于你的configuration文件的信息:
$ -> php -i | ack config # Use fgrep -i if you don't have ack Configure Command => './configure' ... Loaded Configuration File => /path/to/php.ini
对于SAPI:php-fpm
没有必要创build一个php.info文件(这是不是一个好的政策,让世界读取)。 在命令行上:
php-fpm -i | more
在输出的某个地方,它会显示这一行:
Configuration File (php.ini) Path => /etc
这是一个更完整的解释: https : //www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/
有几种有效的方式已经提到查找php.ini文件,但是如果你遇到这个页面,因为你想在bash脚本中做一些事情:
path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')" echo ${path_php_ini}