我使用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
不确定为什么它不起作用。
答案 0 :(得分:7)
(在您问题的原始版本中,您的配置已被注释掉,现在您已对其进行了编辑,从而使接下来的几段内容显得有些空白)
似乎php仍然会愉快地将这些行视为配置文件中的注释。哈希之后的所有内容都将被解释器忽略。
因此,这些配置行完全无效。
要验证是否正在加载配置,请创建一个简单的文件,如下所示:
<php
phpinfo();
加载此文件将告诉您有关PHP配置的所有信息。如果Xdebug已成功加载,您将看到以下内容:
然后在加载的配置设置下方:
这些是最重要的设置,它们实际加载并启用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_host
,xdebug.remote_port
,xdebug.remote_mode
和xdebug.remote_handler
例如:
export XDEBUG_CONFIG="remote_host=192.168.0.3 remote_port=9005"
答案 1 :(得分:1)
pecl install xdebug-beta
答案 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