Съвсем сигурен съм, че това е проблем с xdebug, а не проблем с PHPStorm, но за да бъде ясно отпред, използвам PHPStorm локално за отстраняване на грешки в PHP код, намиращ се на отдалечен сървър. Имам настройка на xdebug на сървъра и използвам следната конфигурация в php.ini на сървъра:
zend_extension=/home/httpd/php_extensions/xdebug-2.1.4/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_connect_back=1
xdebug.idekey=PHPSTORM-XDEBUG
Настроих PHPStorm като моя локална програма за отстраняване на грешки. Използвам XDebug Helper в Chrome или лесен Xdebug във Firefox за инициализиране на xdebug (проблемът ми възниква независимо от това кой използвам). Като цяло отстраняването на грешки работи добре. Мога да задавам точки на прекъсване, да преминавам през код, да виждам променливи и т.н.
Проблемът идва, когато определени заявки никога не получават отговор от сървъра. Сървърът просто никога не отговаря и потвърдих това с Charles Web Debugging Proxy. Това винаги се случва при едни и същи конкретни заявки и се случва независимо дали са зададени точки на прекъсване или не. Заявките, които не получават отговор, са подобни - те извикват php скрипт, който минимизира и обединява множество JavaScript файлове и повтаря резултата.
За отстраняване на неизправности активирах регистрирането на xdebug, като добавих това към php.ini:
xdebug.remote_log=/home/httpd/xdebug.log
Когато grep дневника за името на php файла, който е ударен като крайна точка за тези проблемни заявки, получавам 0 резултата (освен ако изрично не съм добавил точки на прекъсване към тази крайна точка). Когато добавя точки на прекъсване към тази крайна точка (minify.php), мога да премина през нея в PHPStorm съвсем добре и изглежда, че успява да премине през кода дори чрез повтаряне на минимизирания и конкатениран JS код – но отговорът все още никога не се изпраща от сървъра, доколкото е известно на моята локална машина.
Някаква идея какво става тук? Това наистина пречи на способността ми да използвам xdebug. Благодаря.