Không thể có được tập lệnh drush dừng ở điểm dừng với Xdebug / Phpstorm


6

Tôi đã làm việc này trên một máy ảo Drupal khác, nhưng vì một số lý do tôi không thể làm cho nó hoạt động được nữa. Tôi đang cố gắng gỡ lỗi một tập lệnh di chuyển Drush và tôi có một số điểm dừng được đưa vào nhưng nó không bao giờ dừng ở các điểm dừng. Tôi làm theo các bước được hiển thị ở đây .

Đây là phần Xdebug của tôi về config.yml từ Vagrant:

# XDebug configuration. XDebug is disabled by default for better performance.
php_xdebug_default_enable: 1
php_xdebug_coverage_enable: 1
php_xdebug_cli_enable: 1
php_xdebug_remote_enable: 1
php_xdebug_remote_connect_back: 1
php_xdebug_remote_host: xxx.xxx.xx.xx // My Vagrant IP is really here.
# Use PHPSTORM for PHPStorm, sublime.xdebug for Sublime Text.
php_xdebug_idekey: PHPSTORM
php_xdebug_max_nesting_level: 256

Xác thực gỡ lỗi máy chủ web cho thấy mọi thứ đều tốt. Tôi cũng xác minh rằng nếu tôi gỡ lỗi trên một trang mà tôi truy cập từ trình duyệt, nó dừng tại các điểm ngắt để chắc chắn nó hoạt động.

Ngoài ra, CLI PHP có Xdebug:

PHP 7.0.14-2+deb.sury.org~xenial+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.14-2+deb.sury.org~xenial+1, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans

Một điều tôi nhận thấy, là nếu tôi đặt Phpstorm bị ngắt ở dòng đầu tiên trong PHP Script, tôi nhận thấy thông báo sau trong trình gỡ lỗi: Không thể tính toán vị trí nguồn. Tập lệnh 'drush.phar' không được liên kết với bất kỳ loại tệp văn bản nào.

Đây là nhật ký Xdebug:

Log opened at 2017-03-24 02:21:50
I: Connecting to configured address/port: 10.0.2.2:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/mysite/web/drush.phar" language="PHP" xdebug:language_version="7.0.14-2+deb.sury.org~xenial+1" protocol_version="1.0" appid="12759" idekey="18466"><engine version="2.5.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2016 by Derick Rethans]]></copyright></init>

<- feature_set -i 1 -n show_hidden -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="show_hidden" success="1"></response>

<- feature_set -i 2 -n max_depth -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_depth" success="1"></response>

<- feature_set -i 3 -n max_children -v 100
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="3" feature="max_children" success="1"></response>

<- status -i 4
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="4" status="starting" reason="ok"></response>

<- step_into -i 5
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_into" transaction_id="5" status="break" reason="ok"><xdebug:message filename="file:///var/www/mysite/web/drush.phar" lineno="8"></xdebug:message></response>

<- breakpoint_set -i 6 -t line -f file:///var/www/mysite/web/modules/contrib/migrate_tools/migrate_tools.drush.inc -n 226
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="6" id="127590001"></response>

<- breakpoint_set -i 7 -t line -f file:///var/www/mysite/web/core/modules/field/src/Plugin/migrate/source/d6/FieldInstance.php -n 22
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="7" id="127590002"></response>

<- breakpoint_set -i 8 -t line -f file:///var/www/mysite/web/core/modules/field/src/Plugin/migrate/source/d6/FieldInstance.php -n 56
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="8" id="127590003"></response>

<- breakpoint_set -i 9 -t line -f file:///var/www/mysite/web/core/modules/field/src/Plugin/migrate/source/d6/FieldInstance.php -n 37
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="9" id="127590004"></response>

<- stack_get -i 10
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="10"><stack where="{main}" level="0" type="file" filename="file:///var/www/mysite/web/drush.phar" lineno="8"></stack></response>

<- run -i 11
Log opened at 2017-03-24 02:21:51
I: Connecting to configured address/port: xxx.xxx.xx.xx:9000.
W: Creating socket for 'xxx.xxx.xx.xx:9000', poll success, but error: Operation now in progress (29).
E: Could not connect to client. :-(
Log closed at 2017-03-24 02:21:51

Bất kỳ ý tưởng về những gì tôi có thể cố gắng để làm cho nó hoạt động?

Cập nhật - Những điều tôi đã thử

  • Phá hủy máy mơ hồ và bắt đầu lại
  • Sự kết hợp khác nhau của các cài đặt Xdebug trong config.yml (Đặt theo cách mặc định, loại bỏ remote_host, thêm localhost, v.v.)
  • Thay đổi cổng thành 9001 (cả PHPStorm và Vagrant)

Câu trả lời:


3

Tôi chỉ có vấn đề này. Nó xảy ra bởi vì tôi đang sử dụng launcher drush ( https://github.com/drush-ops/drush-launcher ). Công cụ này cho phép gõ "drush" trong thư mục Drupal của bạn, thay vì "./vendor/bin/drush", nhưng dường như nó gây nhầm lẫn cho xdebug. Sử dụng "./vendor/bin/drush" đã khắc phục sự cố.


Điều này đưa tôi đi đúng hướng, tôi cũng phải đặt biến môi trường trong vùng chứa: export PHP_IDE_CONFIG="serverName=MyServer"trong đó MyServer là tên của máy chủ trong Preferences / Languages ​​& Frameworks / PHP / Máy chủ nơi bạn thực hiện ánh xạ đường dẫn của mình
Darvanen

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.