Máy chủ XDebug và RESTful bằng PHPStorm hoặc POSTman


75

Làm cách nào để tôi có thể có một ứng dụng khách REST (chẳng hạn như ứng dụng được tích hợp trong PHPStorm hoặc POSTman ) hoạt động với XDebug?

Trong thiết lập XDebug hiện tại của tôi, sử dụng PHPStorm và Bookmarklet miễn là tôi có thể làm cho nó hoạt động trong cả Chrome và Firefox - nhưng ngay sau khi tôi thử với POSTman hoặc bất kỳ ứng dụng REST nào khác, tôi không thể tìm ra cách để bắt đầu.

Chúc mừng.


1
Sử dụng biểu tượng "tay cầm điện thoại" đó để IDE bắt đầu lắng nghe các kết nối gỡ lỗi. Sau đó, cấu hình xdebug (php.ini) để gỡ lỗi mọi tập lệnh php ( xdebug.remote_autostart = 1) hoặc cách khác xem việc thêm tham số bắt đầu phiên xdebug ( XDEBUG_SESSION_START={{name}}) vào URL có giúp ích gì không: xdebug.org/docs/remote . Hoặc .. bạn có thể chuyển cookie xdebug làm một trong các tiêu đề (ví dụ: cái được đặt bởi bookmarklet). Ngoài ra: youtrack.jetbrains.com/issue/WI-17031
LazyOne

2
Tôi đã cố gắng tránh để XDEBUG bắt đầu theo mọi yêu cầu - tuy nhiên, việc thêm ?XDEBUG_SESSION_START=PHPSTORMvào cuối URL có tác dụng. (một giải pháp hơi lộn xộn, nhưng một giải pháp hiệu quả)
Daniel Hollands

Câu trả lời:


188

Cho đến khi http://youtrack.jetbrains.com/issue/WI-17031 được triển khai, bạn có thể thử một trong các cách tiếp cận sau:

  1. Định cấu hình xdebug của bạn (bằng cách chỉnh sửa php.ini) để cố gắng gỡ lỗi mọi tập lệnh php ( xdebug.remote_autostart = 1)

  2. Thêm thông số bắt đầu phiên xdebug vào URL thực ( XDEBUG_SESSION_START={{KEY}}- http://xdebug.org/docs/remote ), ví dụ:?XDEBUG_SESSION_START=PHPSTORM

  3. Chuyển cookie xdebug làm một trong các tiêu đề ( ví dụ: cái được đặt bởi bookmarklet hoặc tiện ích mở rộng trình duyệt)

Để điều này hoạt động - hãy đảm bảo rằng biểu tượng "tay cầm điện thoại" đã được kích hoạt ( Run | Start Listen for PHP Debug Connection) trước.


2
Cảm ơn bạn vì câu trả lời. Như tôi đã nói ở trên, cái thứ 2 phù hợp với tôi, mặc dù tôi nghĩ rằng tôi muốn cố gắng triển khai cái thứ 3 hơn - vấn đề duy nhất của tôi là tôi không có bất kỳ niềm vui nào khi thiết lập cookie qua POSTman hoặc PHPStorm. Trong mọi trường hợp, điều này hiện đang làm việc, vì vậy cảm ơn bạn :)
Daniel Hollands

2
Nếu bất cứ ai đang sử dụng tiện ích chrome REST của Console, thêm XDEBUG_SESSION_START khi họ chìa khóa và PHPSTORM như giá trị dưới Request Payload (Request Parameters) làm việc cho tôi
RonnyKnoxville

15
Điều này giải quyết được sự cố của tôi, tôi phải đặt fqdn / rest / route? XDEBUG_SESSION_START = PHPSTORM , sau đó tôi cũng phải thêm vào tiêu đề: Cookie: XDEBUG_SESSION = PHPSTORM. Tôi hiện đang gỡ lỗi một dịch vụ không hoạt động, vì vậy đây là công cụ
krob

Câu trả lời đầu tiên phù hợp với tôi; Tôi muốn biết liệu nó có gây ra bất kỳ sự chậm chạp đáng chú ý nào trên hộp phát triển hay không nếu PhpStorm không lắng nghe khi tập lệnh chạy.
M1ke

1
@ M1ke Sẽ có độ trễ khoảng 1 giây trong khi xdebug cố gắng kết nối với máy khách gỡ lỗi (cho mọi yêu cầu / tập lệnh chính).
LazyOne

2

Điều này đã khiến tôi phát điên. Tôi vừa cập nhật lên PHP 7.1 và xdebug đang hoạt động không còn hoạt động nữa. Tôi đã cập nhật xdebug.sotệp (Linux) và php --versionchỉ ra rằng xdebug thực sự đang được tải và hoạt động. Nhưng khi tôi sử dụng Postman, trình gỡ lỗi không bao giờ khởi động.

Đây là giải pháp. Nếu bạn đang sử dụng Apache làm máy chủ của mình thì bạn cần bật các mod PHP 7.1 và khởi động lại Apache:sudo service apache2 restart


Điều này giải quyết các vấn đề đối với tôi. Tôi đang sử dụng Valet, vì vậy đang làm valet stopvalet startđã thực hiện thủ thuật.
leonardfactory

1
xdebug.remote_timeout = 60000

Đã làm cho tôi. Vì máy Mac của tôi rất chậm và trình gỡ lỗi từ xa đã hết thời gian chờ sau 200 mili giây (Giá trị mặc định)


0

Cảnh báo !

xdebug> = 3.0 đã thay đổi các tham số trong php.ini. Sau khi nâng cấp xdebug, hầu hết các câu trả lời ở đây sẽ không liên quan.

Tham khảo tại: https://xdebug.org/docs/upgrade_guide

Về cơ bản, bạn cần thêm một cái gì đó như thế này vào php.ini của mình:

xdebug.mode=develop,gcstats,coverage,profile,debug
xdebug.start_with_request=1
xdebug.idekey=PHPSTORM
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.