我需要在我的EasyPHP环境中启用pdo_mysql,所以我转到php . ini文件并取消注释以下行:
extension=php_pdo_mysql.dll
你可以使用以下方法获得完整的phpinfo():
phpinfo()
php -i
并且,在那里,有使用的php.ini文件:
php.ini
$ php -i | grep 'Configuration File' Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini
在Windows上,使用find代替:
find
php -i | find/i"configuration file"
从我记得当我使用EasyPHP时,php.ini文件在C:\Windows\或C:\Windows\System32中
C:\Windows\
C:\Windows\System32
你可以使用get_cfg_var(“cfg_file_path”):
var_dump( get_cfg_var('cfg_file_path') );
你可以简单地set php.ini的位置。您正在使用命令行版本,因此使用-c参数可以指定此特定运行的位置,例如。
-c
php -c /home/me/php.ini -f /home/me/test.php
如果你想加载所有的配置文件,这将告诉你:
php -i | grep "\.ini"
有些系统从多个ini文件中加载内容。在我的Ubuntu系统上,它看起来是这样的:
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,并在输出中查找CLI使用的php.ini的位置。
php --ini
通常情况下,当涉及到配置文件时,事情并不总是像它们看起来的那样。因此,在这里我将应用我通常的方法来探索进程打开了哪些文件。
我使用一个非常强大和有用的命令行程序strace来告诉我在我背后到底发生了什么!
$ strace -o strace.log php --version $ grep php.ini strace.log
Strace挖掘出你的程序执行的内核(系统)调用,并将输出转储到-o指定的文件中。
-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
命令行没有使用php . ini。你必须将文件从...EasyPHP-<<version>>\apache\php.ini复制到...EasyPHP-<<version>>\php\php.ini,然后编辑php目录中的文件。
...EasyPHP-<<version>>\apache\php.ini
...EasyPHP-<<version>>\php\php.ini
参考:
在你的终端运行php --ini,你会得到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。它会显示所有可能的选项。
php --help
如果你需要将它传递给另一个应用程序,你可以这样做:
php --ini | grep Loaded | cut -d" " -f12
只返回路径。php -c $(php --ini | grep Loaded | cut -d" " -f12)将传入配置文件(对fpm有用)
php -c $(php --ini | grep Loaded | cut -d" " -f12)
fpm
在OS X v10.9 (Mavericks)上,运行:
$ php -i | grep 'Configuration File'
返回:
Configuration File (php.ini) Path => /etc Loaded Configuration File: (none)
在/etc/目录中是:
/etc/
php.ini.default
(以及php-fpm.conf.default)
php-fpm.conf.default
我能够将php.ini.default复制到php.ini,将date.timezone = "US/Central"添加到顶部(在[php]的正下方),问题就解决了。
date.timezone = "US/Central"
[php]
(至少错误消息消失了。)
试试这个,如果它对你们都有帮助的话:
find / -type f -name "php.ini"
这将输出所有名为php.ini的文件。
找出你使用的是哪一个,通常是apache2/php.ini
apache2/php.ini
保存CLI phpinfo输出到本地文件:
php -i >> phpinfo-cli.txt
然后打开文件并找到行Loaded Configuration File。它将包含实际加载的php.ini文件的路径,例如。
Loaded Configuration File
Loaded Configuration File => D:\wamp\bin\php\php7.4.1\php.ini
注意,PHP可能会为CLI模式加载不同的php.ini文件,而为HTTP模式加载另一个。
在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本地安装):
--help
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下
/usr/bin/php
要在CLI中找到php.ini,请运行:
php.exe -i | grep "php.ini"
Ps.你可以用以下方法本地化PHP安装文件夹:
which php
或
whereis php
/ c / laragon / bin / php / php-7.4.19-Win32-vc15-x64 / php