【发布时间】:2020-09-16 21:35:28
【问题描述】:
我刚刚将我的 MacOS 更新到 Big Sur,我的 localhost 配置一团糟。重新安装 PHP 和 Xdebug 后,我的 Xdebug 似乎无法正常工作。我可以看到它是通过php -m 安装的,但它没有在phpinfo(); 中列出。另外,如果我打开 VSCode,启动“Listen for XDebug”,向文件添加断点并运行php -e FILENAME.php,断点有效,但如果我使用浏览器执行相同操作,则不会。
已经尝试过使用自制软件的官方教程和其他几个教程,从手动安装到自动完成所有工作。我这里没有线索,欢迎任何帮助或想法。提前致谢。
下面是我的配置:
- PHP:7.4.10
- php.ini 中的 Xdebug 配置
[xdebug]
zend_extension="/usr/local/Cellar/php/7.4.10/lib/php/20190902/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
- VSCode 启动.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"xdebugSettings": {
"max_data": -1
}
}
]
}
- “php -m”输出
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
phpdbg_webhelper
posix
pspell
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcache
- phpinfo() 输出(由于 stackoverflow 在此处添加限制而压缩)
PHP logo
PHP Version 7.4.10
...
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /usr/local/etc/php/7.4
Loaded Configuration File /usr/local/etc/php/7.4/php.ini
Scan this dir for additional .ini files /usr/local/etc/php/7.4/conf.d
Additional .ini files parsed /usr/local/etc/php/7.4/conf.d/ext-opcache.ini,
/usr/local/etc/php/7.4/conf.d/ext-xdebug.ini
PHP API 20190902
PHP Extension 20190902
Zend Extension 320190902
Zend Extension Build API320190902,NTS
PHP Extension Build API20190902,NTS
...
This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.4.0, Copyright (c) Zend Technologies
...
编辑:仔细检查“php -i”和“phpinfo();”,提到相同的 php.ini 文件:/usr/local/etc/php/7.4/php.ini
【问题讨论】:
-
1) 这个
phpinfo()输出是如何被捕获的:通过CLI 还是浏览器? 2)据我了解,您正在尝试调试网页,对吗?问题是,在 Mac 和 Linux 上,为 CLI 和 Web 服务器提供 separate php.ini 是很常见的。仔细检查 CLI 和浏览器中使用了哪些配置文件(例如“加载的配置文件 /usr/local/etc/php/7.4/php.ini”、“解析的附加 .ini 文件 /usr/local/etc/php/7.4 /conf.d/ext-opcache.ini, /usr/local/etc/php/7.4/conf.d/ext-xdebug.ini" -
我也遇到了与 mongodb.so 类似的问题。有任何使用本机 httpd 的解决方法吗?我宁愿不必为了使用一些扩展而安装 Mac OS 自带的所有内容的副本。有人知道这些 so 文件的签名分发吗?
标签: php macos visual-studio-code xdebug