安装并设置php设置后,xdebug不起作用

时间:2018-11-01 05:51:48

标签: php xdebug

我使用pecl install xdebug在PHP 7.3上安装了Xdebug

当我将这些设置添加到/etc/php/7.3/apache2/php.ini并重新加载apache时,页面失败,并说没有数据发送到服务器。

xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
zend_extension="/usr/lib/php/20180731/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.halt_level=E_WARNING|E_NOTICE|E_USER_WARNING|E_USER_NOTICE
xdebug.scream=1

不确定为什么它不起作用。

3 个答案:

答案 0 :(得分:7)

  

(在您问题的原始版本中,您的配置已被注释掉,现在您已对其进行了编辑,从而使接下来的几段内容显得有些空白)

尽管有文档stating that the has character (#) is no longer recognized as a valid comment character since PHP 7.0

PHP Changelog

似乎php仍然会愉快地将这些行视为配置文件中的注释。哈希之后的所有内容都将被解释器忽略。

因此,这些配置行完全无效。

要验证是否正在加载配置,请创建一个简单的文件,如下所示:

<php
phpinfo();

加载此文件将告诉您有关PHP配置的所有信息。如果Xdebug已成功加载,您将看到以下内容:

phpinfo output

然后在加载的配置设置下方:

phpinfo output

这些是最重要的设置,它们实际加载并启用Xdebug扩展:

zend_extension="/usr/lib/php/20180731/xdebug.so"
xdebug.remote_enable=1

重要:您需要检查/usr/lib/php/20180731/xdebug.so是否确实存在,如果没有找到xdebug模块的实际位置。

下一行假设Web服务器和浏览器安装在同一IP的同一台计算机上,这对于简单的设置而言可能是正确的:

 xdebug.remote_host=127.0.0.1

作为替代方案,您可以告诉Xdebug重新连接到发出原始请求的IP

 xdebug.remote_connect_back=On

使用以下行告诉您IDE正在侦听哪个端口。默认值为9000,因此除非您需要侦听非标准端口(例如,针对不同的解释器同时调试多个项目),否则通常无需进行设置。但通常,您可以安全地省略此行:

xdebug.remote_port=9000

一旦加载并启用了模块,您还可以使用环境变量配置一些Xdebug设置。特别是xdebug.remote_hostxdebug.remote_portxdebug.remote_modexdebug.remote_handler

例如:

export XDEBUG_CONFIG="remote_host=192.168.0.3 remote_port=9005"

答案 1 :(得分:1)

  • xdebug与版本2.7以下的php7.3不兼容
  • 您可以安装xdebug beta版本,该版本与php7.3兼容:
pecl install xdebug-beta

https://bugs.xdebug.org/view.php?id=1584

答案 2 :(得分:0)

要在 php7.3 上安装 xdebug,请运行以下命令:

sudo update-alternatives --set phpize /usr/bin/phpize7.3
sudo update-alternatives --set php /usr/bin/php7.3
sudo update-alternatives --set php-config /usr/bin/php-config7.3

现在下载源代码并运行以下命令安装:

cd /tmp

wget http://xdebug.org/files/xdebug-2.8.0.tgz
tar -xzvf xdebug-2.8.0.tgz
cd xdebug-2.8.0
phpize
./configure
sudo make
sudo make install