我需要在我的EasyPHP环境中启用pdo_mysql,所以我去了php.ini文件并取消注释以下行:

extension=php_pdo_mysql.dll

不幸的是,我仍然有同样的问题。 我正在使用CLI,所以我想我需要找到CLI使用的php.ini文件。我怎么才能找到它?


当前回答

如果你需要将它传递给另一个应用程序,你可以这样做:

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

只返回路径。php -c $(php——ini | grep Loaded | cut -d" " -f12)将在配置文件中传递(对fpm有用)

其他回答

你可以使用get_cfg_var('cfg_file_path')来实现:

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

Unlike phpinfo() it will tell if it didn't find/use a php.ini at all.
var_dump( get_cfg_var('cfg_file_path') );

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

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

通常情况下,当涉及到配置文件时,事情并不总是像它们看起来的那样。因此,在这里我将应用我通常的方法来探索进程打开了哪些文件。

我使用了一个非常强大和有用的命令行程序,名为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

在Docker容器中,"phpmyadmin/phpmyadmin"。没有任何php.ini文件。但是有两个文件:php.ini-debug和php.ini-production。

要解决这个问题,只需将其中一个文件重命名为php.ini并重新启动Docker容器。

现在最简单的方法是使用PHP配置:

php-config --ini-dir

输出:

/usr/local/etc/php/7.4/conf.d

你可以在那里找到更多的东西。——help子命令(macOS本地安装):

php-config --help

输出:

Usage: /usr/local/bin/php-config [OPTION]
Options:
  --prefixUsage: /usr/local/bin/php-config [OPTION]
Options:
  --prefix            [/usr/local/Cellar/php/7.4.11]
  --includes          [-I/usr/local/Cellar/php/7.4.11/include/php - …ETC…]
  --ldflags           [ -L/usr/local/Cellar/krb5/1.18.2/lib -…ETC…]
  --libs              [ -ltidy -largon2 …ETC… ]
  --extension-dir     [/usr/local/Cellar/php/7.4.11/pecl/20190902]
  --include-dir       [/usr/local/Cellar/php/7.4.11/include/php]
  --man-dir           [/usr/local/Cellar/php/7.4.11/share/man]
  --php-binary        [/usr/local/Cellar/php/7.4.11/bin/php]
  --php-sapis         [ apache2handler cli fpm phpdbg cgi]
  --ini-path          [/usr/local/etc/php/7.4]
  --ini-dir           [/usr/local/etc/php/7.4/conf.d]
  --configure-options [--prefix=/usr/local/Cellar/php/7.4.11 --…ETC…]
  --version           [7.4.11]
  --vernum            [70411]

在Linux上,它通常在/usr/bin/php下

要在CLI中找到php.ini,请运行:

php.exe -i | grep "php.ini"

Ps.你可以用以下方法本地化PHP安装文件夹:

which php

or

whereis php

/c/laragon/bin/php/php-7.4.19-Win32-vc15-x64/php