问题是最后一步是配置php.ini文件,但是我的系统上没有任何php.ini文件。PHP工作正常,除了这个新潮的ibm_db2东西。我尝试了一个小的PHP脚本,它失败了,并指示ibm_db2函数不可用。
我该如何找到或设置php.ini文件,以便我可以启用所需的库?
在命令行中执行:
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()命令来搜索相同的信息,并通过浏览器调用它。它在输出的第一个块中提到。php -i
也可以在命令行中执行相同的操作,但使用起来非常不方便。
phpinfo.php
文件的方法。对于FPM,你至少可以使用 php5-fpm -i | grep '\.ini'
。通常你会使用两到三次,最终你就知道文件在哪里了 ;) - KingCrunch找到它最好的方法是:
创建一个 PHP (.php) 文件并添加以下代码:
<?php phpinfo(); ?>
在浏览器中打开它。它将显示实际正在读取的文件!
由OP更新:
<?php echo php_ini_loaded_file(); ?>
,在this answer中提到。<?php phpinfo(); ?>
。 - svenyonsonphp -r \@phpinfo\(\)\;
对我有效。php -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1
可以提取特定信息。 - jgraup<?php echo php_ini_loaded_file(); ?>
- Ates GoralThis works for me:
php -i | grep 'php.ini'
你应该看到类似下面的内容:
Loaded Configuration File => /usr/local/lib/php.ini
P.S.
要仅获取php.ini路径,请使用:
php -i | grep /.+/php.ini -oE
php.ini
文件才能让这个方法起作用,这也正是问题所在:如果不存在该文件,你仍然不知道该去哪里寻找或放置一个新的文件。 - KingCrunchConfiguration File (php.ini) Path => /usr/lib
,但是运行 <?php phpinfo(); ?>
返回的是 Loaded Configuration File: /etc/php.ini
。因此,在我的情况下,phpinfo()
更加可靠。 - Leo Galleguillosphp -i | grep 'php.ini'
?(script.php) - Stackoverflowphp --ini
它会显示类似以下路径:
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File: /usr/local/lib/php.ini
如果以上命令不起作用,则使用此命令:echo phpinfo();
在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
它显示路径结果。
locate
数据库没有更新时,可能会给出错误的结果。 - lxglocate
。 - Peter Mortensen这个命令应该能帮助你找到它
php -r "phpinfo();" | grep php.ini
PHP提供了两个本地函数来显示加载的配置文件:
根据您的设置,Apache和CLI可能使用不同的.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());'
php_ini_loaded_file
可能并不总是可用。 - necromancerphp_ini_loaded_file
文档中说需要PHP版本>=5.2.4。 - necromancerphpinfo();
会告诉你它的位置,或者从命令行
php -i
在命令行中运行此命令:
php -r "echo php_ini_loaded_file().PHP_EOL;"
尝试以下解决方案
在你的终端里,输入 find / -name "php.ini"
在终端中输入 php -i | grep php.ini
。它应该显示文件路径为 "Configuration File (php.ini) Path => /etc"
如果你可以访问其中一个 PHP 文件,请在编辑器(记事本)中打开它,并在新行上的 <?php
后插入 phpinfo();
。这将告诉你 php.ini 的位置。
你也可以在交互模式下与 PHP 进行对话。只需在终端中输入 php -a
,并在 PHP 解释器启动后键入 phpinfo();
。