当前位置: 首页 > 知识库问答 >
问题:

如何在PHPStorm中调试php技工服务?

梁鸣
2023-03-14

我正在使用PHPStorm开发我的PHP网页。我的Apache服务器XDebug和一个简单的web PHP项目都运行良好。没问题。

但是,当我尝试使用 php artisan serve 调试 Laravel 5.1 Web 项目时,我无法调试断点。这就像 php 工匠服务使用另一台服务器......

在我的PHPStom上,我总是看到:

等待使用 ide 键“(randomNumberHere)”的传入连接

我已经在PHPStorm中配置了所有内容(启用远程调试、正确的端口等。),对于“普通的”PHP项目,一切都很好。

有人能告诉我是否需要改变什么吗?

谢谢!

共有3个答案

慕兴平
2023-03-14

现在使用 XDebug 3.0 非常容易。我如何在phpstorm中打开。

我的php.ini配置:

zend_extension = php_xdebug-3.0.0-7.4-vc15-nts-x86_64.dll
xdebug.client_port = 9000
xdebug.mode = debug

为你的操作系统安装正确的Xdebug扩展:https://xdebug.org/docs/install

PHPStom中的设置(我的版本2020.2.3):

  • 开始侦听PHP调试连接在此处输入图像描述
  • 管理第一次连接到server.php运行php工匠服务和第一次调试后

浏览器

  • 为您的浏览器指定的 Xdebug 扩展(对于 Firefox:https://addons.mozilla.org/pl/firefox/addon/xdebug-helper-for-firefox/)
  • 在所需网页上打开调试扩展
郭元凯
2023-03-14

我不使用php的Storm,但也许解决方案,我使用的调试在netbean将证明有用。

artian-service使用不同于web容器加载的ini文件

通过键入查找

php --ini

在我的 ubuntu 盒子上,它位于

Loaded Configuration File:         /etc/php/7.0/cli/php.ini

为您的cli环境编辑ini,并使用您用于为Web容器启用它的相同配置;

例子...

[Zend]
zend_extension=/usr/lib/php/20151012/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

唯一需要注意的是,只要您配置了这个,它就会影响您使用php-cli的其他内容。

附加说明

如果您希望调试会话始终自动启动(而不是通过 URL 请求参数 XDEBUG_SESSION_START=name 启动远程调试,例如,在调试 CLI 内容时),您可以将 XDEBUG 设置为始终使用此附加配置启动远程调试会话;

xdebug.remote_autostart = 1

看见https://xdebug.org/docs/all

通常,您需要使用特定的HTTP GET/POST变量来启动远程调试(请参阅远程调试)。当此设置设置为1时,即使GET/POST/COOKIE变量不存在,Xdebug也将始终尝试启动远程调试会话并尝试连接到html" target="_blank">客户端。

杜志
2023-03-14

除非您在 ini 文件中启用了调试,否则使用 php artisan serve 进行调试不起作用。

@博格丹指出了原因artian-service将调用PHP内置Web服务器,但不传递PHP命令行选项(PHPStorm中的命名解释器选项)。

即,如果您从命令行执行:

$ php -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 artisan serve

然后 -d 给出的这些选项不会传递给称为 PHP 内置 Web 服务器。您可以在此处查看内置服务器的调用。

PHPStorm中的解决方法是创建一个直接调用PHP内置Web服务器的运行配置。说明:

    < li >打开运行-
  • 主机:localhost
  • 端口:8000
  • 文档根:选择Laravel的公共曲库/目录
  • 检查使用路由脚本并在Laravel项目根目录中选择server.php
  • 解释器选项:-dxdebug.remote_enable=1-dxdebug.remote_mode=req-dxdebug.remote_port=9000-dxdebug.remote_host=127.0.0.1

现在,PHPStorm将执行与php技工服务相同的命令,并提供额外的解释器选项。实际上,<code>php技术人员服务</code>的唯一目的是附加服务器。php转换为php内置Web服务器。服务器php只是模拟Apache的<code>mod_rewrite</code>功能。

更新:来自@attila-szeremi的良好提醒:确保启用了“开始监听PHP调试连接”,如果您没有使用“调试”运行PhpStorm配置,则需要手动执行此操作

 类似资料:
  • 我已经正确地配置了Xdebug和PhpStorm,并使用了浏览器调试扩展程序,成功地测试了一个PHP CLI服务器LaravelFly,它加快了Laravel的速度。 但我今天没能用PHPUnit测试它: 我把这个添加到Vagrant Ubuntu.zshrc 但它仍然不起作用,并且PhpStorm响应相同的错误消息。

  • 我试图使用PHP gettext扩展在PHP 5.5(在win2008服务器上,使用IIS7)。我正在这样做: 有了这个文件夹结构: 但它总是只是返回Hello world,而不是正确的翻译,目前(基于我缺乏西班牙语技能)在messages.po文件中是这样的: 这从cmd线路和通过IIS失败。所以我看到gettext调用,等等,并执行它,但它没有读取翻译文件。即使删除翻译文件,我得到相同的行为。

  • 我一直在尝试建立一个PHP网站。不管我怎么努力,我都无法让gettext开始工作。 我正在运行一个ubuntu apache服务器上的流浪框,我需要的所有区域设置都是可用的和生成的(使用区域设置-a检查)。 已安装并启用Gettext(使用phpinfo()检查) 这是我的PHP: 这是我的/vagrant/build/locale/en_US/LC_MESSAGES/en_US。采购订单文件:

  • 问题内容: 我真的很喜欢JVM的远程调试功能。但是我不知道它在内部如何工作。 我的假设:这是通过JVM功能完成的,其中正在运行的进程正在从附加的远程调试器(如IDE)下载/使用源代码。它知道当前堆栈跟踪的行,然后可以跳转到相应的IDE断点。然后,通过套接字或共享内存(远程调试器的设置)完成堆栈跟踪和应用程序状态的内部通信。 有没有人对此感兴趣的链接/资源? 问题答案: JVM的调试功能是通过Jav

  • 我花了一整天的时间在这个上,仍然无法让调试器在PHPStorm中使用谷歌浏览器工作。以下是我到目前为止采取的步骤: 1) 安装后找到xdebug扩展插件: 2)在php.ini文件中插入扩展名: 3)确认xdebug正在工作: 4) 去菲律宾比索Storm 5)切换PHPStorm中的“开始监听PHP调试连接”按钮。 6)在源代码中设置断点。 7)转到此URL https://www.jetbra

  • 断点调试是编程的一大利器,为我们的调试工作带来很多遍历。本文我就讲讲如何用phpstrom配置php的断点调试。 安装xdebug 在配置断点调试之前,你必须先安装xdebug,先去官网下载源码,然后编译安装就好了。(windows用户请直接下载编译好的二进制包) wget https://xdebug.org/files/xdebug-2.5.0.tgz tar xvpzf xdebug-2.5