You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 18.04下Apache 2+Xdebug+PHP 7.2断点调试失效问题

解决Ubuntu 18.04下Apache+Xdebug调试仅第一行暂停的问题

我之前升级Ubuntu版本后也碰到过几乎一模一样的问题,给你几个针对性的排查和解决方向:

  • 确认Apache对应的PHP配置里Xdebug的关键参数
    很多人容易忽略CLI和Apache用的是不同的php.ini配置文件!你可以在网页里放一个phpinfo()文件,查看加载的配置路径,然后检查这个文件里的Xdebug设置:

    xdebug.remote_enable = 1
    xdebug.remote_autostart = 1  # 这个很重要,确保每个请求都自动触发调试会话
    xdebug.remote_port = 9001  # 避开Ubuntu 18.04里systemd-resolved默认占用的9000端口
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    

    修改后一定要重启Apache:sudo systemctl restart apache2

  • 检查是否使用PHP-FPM而非mod_php
    如果phpinfo()里显示SAPI是fpm-fcgi,那Xdebug的配置要放到PHP-FPM的配置文件里(比如/etc/php/7.2/fpm/php.ini或者对应的pool.d配置),修改后需要重启PHP-FPM服务:sudo systemctl restart php7.2-fpm,光重启Apache没用。

  • 验证NetBeans的调试会话设置
    打开NetBeans的「工具」->「选项」->「PHP」->「调试」,确认:

    • 调试端口和Xdebug配置的remote_port一致
    • 会话ID设置为netbeans-xdebug
    • 勾选「接受外部连接」
      另外,确保没有勾选「仅在第一行暂停」(不过你说只停一次,这个可能不是问题,但可以确认下)
  • 排查调试会话Cookie丢失问题
    如果你的页面有重定向或者跨路径访问,可能XDEBUG_SESSION的Cookie没被正确携带。可以打开浏览器的开发者工具,在「应用」->「Cookie」里查看是否存在这个Cookie,并且路径是/(全站有效)。

  • 检查Xdebug版本兼容性
    Ubuntu 18.04默认的Xdebug版本可能和PHP7.2存在兼容问题,你可以手动安装适配的版本:

    sudo pecl uninstall xdebug
    sudo pecl install xdebug-2.9.8  # 这个版本完美兼容PHP7.2
    

    安装后记得在对应的php.ini里添加zend_extension=xdebug.so,再重启服务。

  • 排除代码或框架的干扰
    有些PHP框架或者自定义代码可能会通过ini_set()修改Xdebug配置,比如关闭remote_enable。你可以在断点前加一行var_dump(ini_get('xdebug.remote_enable'));,确认调试时这个参数是1。

内容的提问来源于stack exchange,提问作者Van

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:02:42