命令行看php.ini,如何find命令行使用的php.ini文件?

来源:csdn博客 分类: 文章浏览史 发布时间:2023-03-24 23:46:46 最后更新:2023-03-24 浏览:196
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2023-03-24 23:46:46

只要运行php --ini

您可以使用以下方法获得完整的phpinfo() :

php -i

而且,在那里,使用了php.ini文件:

$ php -i | grep 'Configuration File' Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini

在Windows上使用find来代替:

php -i|find/i"configuration file"

php --ini

会给你所有的细节的使用途径和可能的ini文件(S)

你可以使用get_cfg_var('cfg_file_path') :

要检查系统是否正在使用configuration文件,请尝试检索cfg_file_pathconfiguration设置的值。 如果可用,则使用configuration文件。

不像phpinfo()它会告诉它,如果它根本没有find/使用php.ini。

var_dump( get_cfg_var('cfg_file_path') );

你可以简单地设置 php.ini的位置 。 您正在使用命令行版本,因此使用-c参数可以指定位置,例如

php -c /home/me/php.ini -f /home/me/test.php

在你的terminal运行php --ini ,你会得到关于ini文件的所有细节

[root@tamilan src]# php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini Scan for additional .ini files in: /etc/php.d Additional .ini files parsed: /etc/php.d/apc.ini, /etc/php.d/bcmath.ini, /etc/php.d/curl.ini, /etc/php.d/dba.ini, /etc/php.d/dom.ini, /etc/php.d/fileinfo.ini, /etc/php.d/gd.ini, /etc/php.d/imap.ini, /etc/php.d/json.ini, /etc/php.d/mbstring.ini, /etc/php.d/memcache.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/posix.ini, /etc/php.d/sqlite3.ini, /etc/php.d/ssh2.ini, /etc/php.d/sysvmsg.ini, /etc/php.d/sysvsem.ini, /etc/php.d/sysvshm.ini, /etc/php.d/wddx.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/xsl.ini, /etc/php.d/zip.ini

更多的,使用帮助命令php --help它将显示所有可能的选项。

有时候,事情并不总是和一般的configuration文件一样。 所以在这里,我正在使用我通常的方法来探索一个进程打开的文件。

我使用了一个非常强大有用的命令行程序strace来显示我背后的真实情况!

$ strace -o strace.log php --version $ grep php.ini strace.log

Strace挖出你的程序所做的内核(系统)调用,并把输出转储到-o指定的文件中

在这个日志中使用grep来查找php.ini的出现是很容易的。 看看下面的典型回答,看看发生了什么,这是非常明显的。

open("/usr/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/php.ini", O_RDONLY) = 3 lstat("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=69105, ...}) = 0

如果你想加载所有的configuration文件,这将告诉你:

php -i | grep "\.ini"

有些系统从多个ini文件加载内容。 在我的Ubuntu系统上,看起来像这样:

$ php -i | grep "\.ini" Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini Scan this dir for additional .ini files => /etc/php5/cli/conf.d additional .ini files parsed => /etc/php5/cli/conf.d/apc.ini, /etc/php5/cli/conf.d/curl.ini, /etc/php5/cli/conf.d/gd.ini, /etc/php5/cli/conf.d/mcrypt.ini, /etc/php5/cli/conf.d/memcache.ini, /etc/php5/cli/conf.d/mysql.ini, /etc/php5/cli/conf.d/mysqli.ini, /etc/php5/cli/conf.d/pdo.ini, /etc/php5/cli/conf.d/pdo_mysql.ini

如果您需要将其传递给另一个应用程序,则可以执行以下操作:

php --ini | grep Loaded | cut -d" " -f12

仅返回path。 php -c $(php --ini | grep Loaded | cut -d" " -f12)会传入configuration文件(对于fpm有用)

在OSX Mavericks上,运行:

$ php -i | grep 'Configuration File'

回:

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

在/etc/目录下是:

php.ini.default

(以及php-fpm.conf.default )

我能够将php.ini.default复制到php.ini ,将date.timezone = "US/Central"到顶部(在[php]下面),问题就解决了。

(至less错误信息已经消失。)

从我记得以前使用EasyPHP时,php.ini文件可以在C:\Windows\或C:\Windows\System32

在你的php.ini文件中设置你的扩展目录,例如:

extension_dir = "C:/php/ext/"

你会看到在你的PHP文件夹有一个ext文件夹与所有的DLL和扩展。

没有php.ini使用的命令行。 你需要从...EasyPHP-<>\apache\php.ini复制文件到...EasyPHP-<>\php\php.ini比编辑php目录

参考:

php技术微信