【发布时间】:2020-06-26 06:00:01
【问题描述】:
我正在尝试启用 XDebug,以便可以将它与 PHPStorm 一起使用(我在 Mac 上),尽管我没有任何错误 XDebug 未在 phpinfo() 输出中列出。我也尝试使用 XDebug 向导,但结果相同。这是我的所有配置:
我修改了我从中得到的/usr/local/etc/php/7.2/php.ini:
$ php --ini:
Configuration File (php.ini) Path: /usr/local/etc/php/7.2
Loaded Configuration File: /usr/local/etc/php/7.2/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.2/conf.d
Additional .ini files parsed: /usr/local/etc/php/7.2/conf.d/ext-opcache.ini
以下内容:
zend_extension ="/usr/local/lib/php/pecl/20170718/xdebug.so"
[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
xdebug.so 使用 pecl 安装时没有任何错误:
$ pecl install xdebug
确认我有xdebug.so:
php -m 的输出如下:
[PHP Modules]
ast
bcmath
...
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
[Zend Modules]
Xdebug
Zend OPcache
在我运行所有这些配置之后:
$ sudo apachectl restart
但是在phpinfo() 的输出中我没有启用它:
我也查看了所有内容,但没有任何与xdebug相关的内容。
还应注意,我在 phpinfo() 输出之前重新启动了本地服务器:
$ php bin/console server:start --force
我的 php 版本(您还可以看到它显示 Xdebug 已正确启用):
❯ php -v
PHP 7.2.27 (cli) (built: Jan 24 2020 03:49:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.9.3, Copyright (c) 2002-2020, by Derick Rethans
with Zend OPcache v7.2.27, Copyright (c) 1999-2018, by Zend Technologies
【问题讨论】:
-
如果启用了xdebug,你能检查一下php-fpm目录吗? php-cli 可以具有与 php-fpm 不同的配置集。你能检查你的
phpinfo()里面使用的ini目录吗?在apache里面运行? -
运行一个带有
phpinfo()输出的页面通过浏览器捕获——你的Apache很可能使用与CLI环境不同的php.ini,因此在这里检查php -i是没有用的/无关。附:那么,您实际使用的是哪种 Web 服务器——Apache 或 Symfony 呢? Apache 应该使用 TS 构建; Symfony 将使用 CLI 并且可以是 NTS(正如您的信息所说)。 -
@vaklinzi 我知道,你有一个 Mac 而不是 Windows .. 但请尝试重新启动整个计算机,因为它有时会有所帮助。现在,如果两者都使用相同的 .ini 文件集(我相信你)并且它使用相同的东西.. 它实际上应该可以工作。如果您可以并且不介意——您能否发布通过浏览器捕获的
php -i和phpinfo()的完整标题输出? “标题”是指在它开始列出实际设置/模块之前......也许(只是也许)你在某种程度上遗漏了一些东西(总是有机会)? -
@LazyOne 重新启动我的 Mac 可以解决问题。非常感谢您的建议。请回答,我会接受的。
-
@vaklinzi 我不知道我应该如何回答——“重新启动您的计算机”? - 太简单了,没有建议同时检查的所有其他内容。请根据您的尝试和解决方法做出您自己的答案(您可以接受自己的答案),这将帮助处于类似情况的其他人(对所有不信的人:“重启魔法”确实有效)。