PHPStorm + XDebug设置步骤演示

46
直到最近,我一直使用PHP(通过Notepad ++)编写代码,并通过检查IIS中的日志进行调试(一定要喜欢Web平台安装程序); 后来,我决定更新到更高效的代码编写/测试环境,并在使用PHPStorm进行了几次尝试后,决定购买它并尝试一下。自那时以来,我意识到就教程和指南而言,PHPStorm 略有不足。在浏览了手册之后,我想请问是否有人能够帮助我设置PHPStorm + XDebug,这样我就可以停止因为没有学好底层系统而讨厌自己,并回到编程中。
简化版:有人能否发布一个详细的PHPStorm + XDebug设置指南?假设我非常愚蠢(通常在ASP.NET世界中我已经非常有能力,但是在PHP世界中我接近与海绵动物某些形式相关的智力水平)。 在Windows 7 Ultimate(64位)与IIS&PHP安装的环境中。

这不是直接回答你的问题,但是所有主流浏览器都有许多XDebug辅助工具可用,它们使得连接到调试会话非常容易。请查看Chrome商店中的https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc。 - keithl8041
你从记事本转到了PHPStorm :) :) 哈哈 - Datadimension
6个回答

39
我发现了一种更现代化、更简单的解决方案,部分基于CrasyCoder的帖子。
你需要执行以下步骤:
  1. 如果你的全新php安装中没有php.ini文件,则将php.ini-development重命名为php.ini
  2. 使用向导安装xdebug:http://xdebug.org/wizard.php遵循其建议。
  3. 在php.ini文件中添加以下字符串:xdebug.remote_enable=1
  4. 进入PhpStorm的设置:设置->PHP。选择或重新选择包含php的目录。确保您看到“调试器:Xdebug x.x.x”字符串(其中x.x.x表示已安装的版本)
  5. 从这里安装您喜欢的浏览器扩展程序:http://xdebug.org/docs/remote
  6. 从主菜单(而不是设置窗口)转到“运行->编辑配置”并添加新的“PHP内置Web服务器”配置。将“文档根目录”指向您的项目目录。注意端口号。
  7. Chrome浏览器:启用扩展程序,按下omnibox右侧的小虫子并选择Debug选项。其他浏览器的扩展程序应该类似地工作。
  8. 在PhpStorm菜单中启用“运行->开始侦听PHP调试连接”选项。
  9. 在PhpStorm中的您的代码中设置断点。
  10. 运行(而不是调试)您在步骤6中创建的配置。
  11. 在浏览器中转到localhost:port,其中'port'是来自第6步的端口。您的PhpStorm应该在断点处停止,您可以开始解决代码中的错误。
考虑到:
步骤1-5只需要一次执行。 步骤6针对每个PhpStorm项目只需执行一次。 步骤7-8只需要在每个调试会话中执行一次。 步骤9-11每次程序运行都需要执行。

不错的解决方案,谢谢。但是:“错误:内置Web服务器仅在PHP 5.4及以上版本可用”,而我的版本是5.3.8... - Ralf
请不要假设每个人都在使用PHP的内置Web服务器。为了在现有/配置好的Nginx和FPM配置中使用它,需要提供详细说明。 - Morgon
2
这是在我无数个小时后生效的方法。Jetbrains 软件通常非常好用,但让 PHPStorm 调试一直非常令人沮丧。 - naveed
在编辑器视图的右上角点击浏览器图标后,我终于让它正常工作了。只有在悬停时才可见。 - M.C.

20

我应该下载XDebug的TS或非TS版本?自动指令生成器无法从我提供的“php -i”信息中解析任何有用的内容。 - user978122
这取决于您所使用的PHP版本,请在虚拟页面上检查phpinfo()的输出或尝试从php -i中找出答案。 - CrazyCoder
嗯,线程版本似乎是最合适的,但安装说明不够详细... - user978122
如果自动生成的指令无法解析,请提交错误报告?(http://bugs.xdebug.org) - Derick
糟糕,我的php -i出了问题。试图将所有内容导入到现有文件中,但得到了错误的内容。通过IIS控制台获得了正确的信息,生成了更合适的指令(它不喜欢Program Files目录,将其缩短为Program,但这种情况经常发生...)。 - user978122
1
这里有一份更新的指南版本:http://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm - shovavnik

11

1. 安装 xdebug 模块 (MAC 安装步骤)
1.1.1. 检查你使用的 PHP 版本 php --ini (查看加载的文件)
1.1.2. brew search xdebug
1.1.3. brew install phpXX-xdebug
1.1.4. 查看细节: php -i | grep xdebug
1.2. 重启服务器
1.3. 配置
1.3.1. sudo find /usr -name 'xdebug.so'
1.3.2. 复制你需要的确切路径
例如: /usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so
1.3.3. 编辑与扩展相关的配置文件,应自动注入主 php.ini:
subl /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini
1.3.4. 添加 zend_extension 为上述复制的路径。

 [xdebug]  
 zend_extension="/usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so"

正常的文件应该长得像这样:

[xdebug]
zend_extension="/usr/local/Cellar/php56/5.6.4/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"


xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_autostart=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp"
xdebug.idekey=PHPSTORM

2. 检查您的PHP版本
php --ini
3. 设置IDE设置
首选项 > 语言和框架 > PHP >
3.1. 将语言级别设置为该项目所需的正确PHP版本
3.2. 设置解释器(设置PHP可执行文件的bin目录的父目录)
3.2.1. 点击…按钮 > 点击+按钮 > 其他本地文件 > 设置PHP可执行文件路径,
要查找路径,请在终端中键入:$ which php
例如:/usr/local/Cellar/php56/5.6.5/bin/php
4. 重新启动PhpStorm
5. 现在让我们使其工作
5.1. 运行 > 编辑配置 > 点击左侧的绿色+按钮 > 选择b. PHP Web应用程序
5.2. 名称:任何名称,例如ur {application name - debugger}
5.3. 服务器:localhost(浏览> +> 名称:whatever | 主机:localhost或127.0.0.1)
5.4. 点击确定
5.5. 启动URL:您项目主页的链接:http://127.0.0.1:80/SomethingNew/
5.6. 点击确定
6. 现在设置断点并点击调试


1
这是我见过的关于这个主题最好的教程。运行得非常好!谢谢! - Erik Töyrä Silfverswärd

9
我第一次尝试远程调试XDebug时遇到了很多问题。
以下是一些常见提示,因为您已经被各种教程和指南淹没了。
- 在PHP / Aache端配置XDebug:
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_connect_back = 1
- 您需要使用上面给出的remote_connect_back(请注意,这意味着启用时其他人也可以调试您的服务器),或者指定您的IP地址(remote_host)。
- 在客户端上,您需要让路由器转发端口9000!
- 您需要在防火墙中允许PHPStorm进行传入连接(对于我来说,在Windows 8上默认情况下未启用)。打开端口9000或应用程序本身。
- 在PHPStorm中,确保进入调试配置并不使用默认调试(PHPUnit!)使用“PHP远程调试”(运行/调试配置->左上角的加号)
- 您需要告诉PHPStorm您的Web服务器上项目的绝对路径,如果在此处犯错误(并忘记了这一点),则将收到提示。
- 现在,在启用“侦听连接”的情况下在PHPStorm中调试您的项目,并在代码中设置断点。
- 使用启用调试器的cookie打开您的网站/php文件的Web浏览器(在大多数情况下,cookie是最好的方法)。您可以使用书签(搜索phpstorm调试书签)或扩展。
即使遵循指南,我也错过了上述几点。希望我能节省一些挣扎的时间 :)

加一分给 xdebug.remote_connect_back=1 这部分!谢谢。 - rfsbsb
小心设置,如果不小心保留它会很危险。 - John

3
如果您不需要远程调试,您可以轻松地调试您的项目。
首先检查您的php.ini设置。
确保您的xdebug dll存在并且设置是开启的。
xdebug.remote_enable = on
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars=0

然后在顶部导航栏中进入“运行”菜单。然后选择“编辑配置”,并添加新的配置(不要更改另一个项目的默认设置)。

phpStorm add new configuration 点击“添加新项目”按钮。

添加新的php Web应用程序

如果您没有任何服务器(通常在Windows或Linux上将本地主机指向80端口),请单击下面显示的按钮。

enter image description here

添加一个带有xdebug的新服务器。

enter image description here

然后点击确定并检查您的配置。

enter image description here

最后,您将在 IDE 右侧看到配置。

enter image description here

点击“运行”或“调试”按钮。

enter image description here

enter image description here


0
在本地 PHP 上安装 xdebug-实际上要更新包含 xdebug 的 php 版本: https://floyk.com/en/post/how-to-update-php-version-on-your-macbook-macos-sierra 设置您的 xdebug.ini zend_extension = /usr/local/php5/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so [xdebug] xdebug.remote_enable=on xdebug.default_enable=on xdebug.remote_autostart=off xdebug.remote_port=9000 xdebug.remote_host=localhost xdebug.profiler_enable_trigger=1 xdebug.profiler_output_name=xdebug-profile-cachegrind.out-%H-%R xdebug.var_display_max_children=128 xdebug.var_display_max_data=512 xdebug.var_display_max_depth=3 xdebug.remote_enable=1 xdebug.idekey=PHPSTORM xdebug.show_error_trace=1 xdebug.file_link_format=phpstorm://open?%f:%l
将 Xdebug 助手安装到 Chrome 浏览器中: Install Xdebug helper 在 PhpStorm 中转到 设置/首选项-> 语言和框架-> PHP-> 调试
  • 如果需要,请更新自动检测IDE IP,然后按OK

完成了。

您可以在此处找到更详细的“逐步”指南:

https://floyk.com/en/post/how-install-php-with-xdebug-on-mac-os


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接