Tôi đang cố gắng gỡ lỗi trang web Drupal bằng plugin PHP trong Intellij (sẽ giống nhau trong PhpStorm).IntelliJ, PhpStorm: Gỡ lỗi với xdebug bỏ qua cookie XDEBUG_SESSION
tôi có các thiết lập sau:
Trình duyệt Chrome trỏ đến một bí danh localhost mydomain.local
và phần mở rộng XDebug Helper được cài đặt và thiết lập để Debug. Trong các Công cụ Nhà phát triển trong Cookie, tôi có thể thấy rằng cookie XDEBUG_SESSION
được đặt thành PHPSTORM.
Tôi đã cấu hình php với Xdebug cắm sử dụng các cài đặt sau:
xdebug.extended_info = 1
xdebug.idekey = "PHPSTORM"
xdebug.max_nesting_level = 500
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_mode = req
xdebug.remote_port = 9000
Trong IntelliJ tôi đã thiết lập một máy chủ chỉ vào mydomain.local
và trong cấu hình chạy Tôi đang sử dụng máy chủ đó và đã thiết lập các Ide chính đến PHPSTORM
.
Bây giờ vấn đề là thế này:
Nếu tôi cho phép Nghỉ giải lao tại dòng đầu tiên trong kịch bản PHP, sau đó trình gỡ lỗi ngay lập tức phá vỡ tại địa điểm đầu tiên vỡ bên trong index.php
. Nếu tôi vô hiệu hóa tùy chọn đó, tôi nhận được cảnh báo rằng không có điểm ngắt nào bị tấn công, mặc dù tôi có một điểm ngắt và tôi chắc chắn rằng mã đang được thực hiện. Các cảnh báo mà tôi thấy trông như thế này:
Debug session was finished without being paused
It may be caused by path mappings misconfiguration or not synchronized
local and remote projects.
To figure out the problem check path mappings configuration for
'mydomain.local' server at PHP|Servers or enable Break at first line in
PHP scripts option (from Run menu).
Bây giờ nếu tôi dứt khoát sử dụng một URL với tham số truy vấn sau đây nối: ?XDEBUG_SESSION_START=PHPSTORM
sau đó tất cả các breakpoint tôi được đúng được breaked trong IntelliJ.
Câu hỏi: Tại sao cookie XDEBUG_SESSION
bị bỏ qua?
Cập nhật: Thêm PHP của tôi và phiên bản đầu ra XDebug từ php -v
:
PHP 7.0.8-0ubuntu0.16.04.3 (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.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016,
by Zend Technologies
with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans
và Apache ảo cấu hình máy chủ của tôi:
<VirtualHost *:80>
DocumentRoot /var/www/html/mydomain
ServerName mydomain.local
<Directory /var/www/html/mydomain>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/mydomain.log
</VirtualHost>
Cập nhật 2: Tôi có một phần mở rộng php cài đặt được gọi là fpm
. Tôi không hoàn toàn chắc chắn lý do tại sao cài đặt của nó hoặc nếu tôi cần nó. Tôi nghĩ rằng nó đã được cài đặt tự động với php. Điều này có thể can thiệp không?
Bạn đã thử đặt 'remote_autostart' thành 0? Có vẻ như không cần thiết để đặt tùy chọn này thành 1 nếu bạn muốn bật gỡ lỗi bằng cách đặt cookie. –
Ngoài ra, phiên bản xdebug của bạn là gì? –
Kiểm tra xem trang web của bạn có thực hiện một số chuyển hướng hay không, đó có thể là nguyên nhân khiến trang web không phá vỡ nơi bạn mong đợi. Mặc dù có vẻ như đó không phải là trường hợp vì nó hoạt động khi bạn thêm tham số GET. – user5542121