PHPStorm、Xdebug和远程调试(在PHPStorm中使用FTP)

7

首先:

  • 服务器是在SunVirtualBox x86上运行的Ubuntu上的Apache
  • 调试服务器是XDebug
  • 文件使用phpstorm从FTP下载

PHP版本为

PHP 5.4.9-4ubuntu2.4 (cli) (built: Dec 12 2013 04:26:30) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

重要提示XDebug已正确配置,因此在我的本地主机上一切正常运行。

enter image description here

但是我无法设置远程调试,以下是我做的所有图片和步骤,请帮忙并给我建议。

步骤1 - 基本点击从现有文件创建新项目。

Step1

步骤2 - 选择FTP

Step2

步骤3 - 文件系统上的项目设置

Step 3

步骤4 - 设置FTP连接和高级 - 被动模式

Setting FTP connection and Advanced - Passive mode

步骤5 - 运行/调试配置,选择PHP远程调试,并键入Ide密钥:PHPSTORM

Run/Debug configuration

步骤6 - 服务器和验证远程环境,这里会弹出警告:未加载调试扩展

Servers and validate remote enviroment

步骤7 - Php ini配置。

Php ini configuration.

所以最终....

1)是否需要在客户端的远程服务器上进行任何操作才能使此功能正常工作?也许在那里安装XDEBUG,也许您会觉得这个问题很傻,相信我,我已经在这上面浪费了3天时间,现在有点沮丧。请帮帮我。

2)我将很高兴上传更多截图或回答您可能拥有的任何问题,以帮助我解决问题。我知道这是一个简单的问题,但我正在为此大伤脑筋。

请再次帮忙,我浏览了PHPSTROM中的15页远程调试内容,但所有这些页面都不够精确。如您在第一张图片中所看到的,我的本地主机一切正常。


1
所以你可以在本地调试这段代码,但不能在你下载源代码的服务器上进行调试?要使用XDebug,必须在你访问的服务器上安装和配置它。 - dev-null-dweller
1
  1. 是的,在执行代码的同一环境中(在您的情况下 - 远程服务器)必须安装xdebug(或Zend Debugger)。否则,IDE将不知道何时以及如何执行某些操作。
  2. 为什么您在第6步的截图中将rirads.com/master-schedule作为“主机”字段?它应该是您的域名或IP(此站点的$ _SERVER [“SERVER_NAME”]的内容)。
- LazyOne
谢谢你们两位的回答。我将在远程服务器上设置和安装xdebug。只需将xdebug.so放入某个路径并编辑php.ini,是否就足够了呢? - Matija
另一个关于php.ini配置的问题。属性{xdebug.remote.host}应该是我的本地主机名还是远程服务器的IP,例如rirads.com?我假设远程主机是REMOTE主机,所以是rirads.com还是? - Matija
“property {xdebug.remote.host} should be my localhost or the IP of the remote server in my case rirads.com?” -- 请不要猜测该属性的作用,而是参考文档:http://xdebug.org/docs/all_settings#remote_host。该属性应该是 PhpStorm 运行所在计算机的 IP 地址。另外,应该使用 xdebug.remote_host(下划线代替第二个点)。 - LazyOne
显示剩余3条评论
2个回答

1
使用XDebug在本地计算机和远程系统上的主要区别是,您需要配置两个内容:
1)您在网络外的服务器上使用xdebug.remote_host将是您的IP地址,就是您在whatismyip.com上获得的地址。此IP地址易于更改。(如果您的家庭IP经常更改,可以使用某些提供商的动态DNS和主机名代替IP) 无论如何,当XDebug在远程服务器上启动时,它成为客户端,寻找您笔记本电脑上运行的端口为9000的XDebug服务器。
这就是许多XDebug用户感到困惑的原因。接下来就是:
2)您必须编辑您家庭/办公室防火墙(假设这是您在步骤1中输入xdebug.ini或php.ini的IP上的交通警察),将端口9000上的传入流量转发到您家庭/办公室网络上的笔记本电脑IP。
关于此的最佳资源(IMO)在这里:http://matthardy.net/blog/configuring-phpstorm-xdebug-dbgp-proxy-settings-remote-debugging-multiple-users/

-1

你应该在remotedebug中将调试器的端口设置为9000,就像在php.ini中一样。


请添加更多的解释以便理解。 - SagarPPanchal

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