我想用phpstorm10和xdebug调试一个php脚本。我的设置如下:
客户端是python。客户端发送json数据。客户端的代码是(contact是包含json的变量):
conn = httplib.HTTPConnection('192.168.2.103:85')
headers = {"Content-type": "application/json", "charset" : "utf-8"}
body = json.dumps(contact, ensure_ascii = 'False')
conn.request('POST', '/web_service/index.php', body, headers)
response = conn.getresponse()
服务器端使用php。在服务器端,我将xdebug设置为:
zend_extension = "E:\_Dizertatie\php\ext\php_xdebug.dll"
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "E:\_Dizertatie\tmp"
xdebug.remote_enable =true
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
使用这个guide和这个page我只能在启动“启动调试”bookmarklet时调试我的页面。我的python请求没有被PhpStorm的调试器捕获。我希望被动地侦听(不使用bookmarklet)并在php调试器中捕获所有请求,不管它们的源代码是什么(python、mobile、不同的php脚本)。你知道吗
在发送python请求时,有没有配置可以用来调试php脚本?你知道吗
您需要告诉xdebug您想要调试这个请求。你知道吗
这正是bookmarkets/browser扩展所做的,它们设置了xdebug cookie,该cookie与下一页请求一起发送。您可以通过XDEBUG_SESSION_START用实际的GET或POST参数替换cookie,例如,将这样的参数添加到
conn.request(...
行。你知道吗或者,您可以让xdebug自动调试每个请求(通过
php.ini
中的xdebug.remote_autostart = 1
),这可能是不需要的,并且可能有一些“副作用”(如果调试客户端不可用,则执行延迟约1秒xdebug等待可能的客户端响应的时间)。这与您正在使用的zero config approach(“电话手柄”图标)有关。你知道吗如果您正在使用这个选项,那么不要忘记在中进行更改之后重新启动您的web服务器(或者
php-fpm
,如果您正在使用它)php.ini文件. 否则,在重新启动之前(在大多数设置中默认情况下),这些更改不太可能被自动拾取。你知道吗附言 PhpStorm有内置的简单的REST Client可通过
Tools | Test RESTful Web Service
访问,您可以使用它来发送定制请求(而不是使用真正的客户端(在您的例子中是python代码))。你知道吗由于phpstormv11(即将发布),您可以直接从那里启动调试(专用的“调试”按钮),而不是添加xdebug cookie/查询参数。你知道吗
另一种选择是使用类似的基于浏览器的工具(例如,用于Chrome的Postman)。你知道吗
相关问题 更多 >
编程相关推荐