xdebug на отдалечен сървър

Искам да ви кажа каква е същността на работата на xdebug на отдалечен сървър. И веднага ще кажа, че всичко ще работи добре с локални виртуални машини, но най-вероятно не с отдалечена машина (очевидно поради големи пингове).

За тези, които не знаят как работи xdebug, ви съветвам да прочетете статията - xdebug под микроскоп

Ако обаче заявката (стъпка 1) идва от отдалечен IP ($ _SERVER ['REMOTE_HOST']! = IP, на който се изпълнява xdebug), тогава xdebug ще игнорира връзката (стъпка 4 ще се провали). За да се изпълни стъпка 4, xdebug има параметър:

; това кара xdebug да игнорира настройката xdebug.remote_host
xdebug.remote_connect_back = 1

не забравяйте да рестартирате apache (или php-fpm).

Ако слушателят слуша, но не спира на точките на прекъсване, проверете следните настройки в xdebug.ini:

xdebug.remote_port = 9089
xdebug.remote_enable = 1
xdebug.remote_log = /tmp/xdebug.log

Например си спомних, че моят слушател слуша на порт 9089.

Но това не ми помогна, но дневниците от файла /tmp/xdebug.log помогнаха:

# tail -f /tmp/xdebug.log
Дневникът е отворен в 2014-12-20 09:56:36
I: Проверка на обратния адрес за отдалечено свързване.
I: Открит е отдалечен адрес, свързващ се с 95.25.48.115:9089.
E: Време за изчакване при свързване с клиента.:-(

Дневникът е затворен в 20.12.2014 г. 09:56:36

Но така е, седя на рутера и по подразбиране рутерът не го пропуска, така че xdebug не може да се свърже с моя лаптоп.

сървър

Но уви, дори след като връзката с отдалечения сървър беше успешно завършена, IDE не можеше да взаимодейства нормално - дебъгерът в IDE беше безшумен. И само от регистрационните файлове /tmp/xdebug.log стана ясно, че връзката е осъществена и обменът на данни със спирачките, но става:

Дневникът е отворен в 2014-12-20 16:27:52
I: Проверка на обратния адрес за отдалечено свързване.
I: Открит е отдалечен адрес, свързващ се с 95.25.48.115:9089.
I: Свързан с клиент.:-)
->

Отстраняване на грешки от отдалечена конзола

1. Трябва да конфигурирате IDE, а именно да посочите хостовете и картографирането на файлове:

2014-12-20 Проверка обратния

както виждаш, синхронизиране-lc това е името на проекта, който ще трябва да бъде посочен в конзолата:

PHP_IDE_CONFIG = "име на сървъра =синхронизиране-lc"php -d xdebug.remote_host = 192.168.12.345 ./project/file.php

-d xdebug.remote_host = е настройка за xdebug, която също може да бъде зададена в php.ini или с помощта на променливата на околната среда: XDEBUG_CONFIG = "remote_host = YOUR_IP_ADDRESS"

Ако нещо не работи, използвайте настройката xdebug:

в който в случай на проблеми ще бъде написано нещо подобно: