Apache / php5 + xDebug with proxy

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Serega955
Сообщения: 35

Apache / php5 + xDebug with proxy

Сообщение Serega955 »

Здравствуйте! Помогите решить такую проблему:

PC1: CentOS7 (Apache+php5)

php -v
PHP 5.4.16 (cli) (built: Jun 23 2015 21:17:27)
Copyright © 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright © 1998-2013 Zend Technologies
with Xdebug v2.3.2, Copyright © 2002-2015, by Derick Rethans

XDEBUG брал тут http://xdebug.org/download.php
<?php echo phpinfo();?>
Модуль вижу

из php.ini
..
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.idekey=cli
xdebug.remote_autostart=1
xdebug.remote_log=/tmp/xdebug.log
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.profiler_output_dir=/tmp/profiler
xdebug.show_local_vars=1
xdebug.overload_var_dump=1
;xdebug.remote_connect_back = 1

Второй ПК - Windows, поставил sublime text + xDebug plugin, если в php.ini меняю xdebug.remote_host, то все нормально работает. Т.к в моей задачи требуется предоставить доступ нескольким разработчикам, я использовал те настройки которые написал + https://github.com/jaredly/pydbgp.git

python pydbgpproxy.py -i 10.0.8.159:9001 -d 127.0.0.1:9000
-Порт 9001 открыт
- ss -lnp на CentOS говорит что что скриптец слушает 9000 & 9001
- iptables пустой с политиками по умолчанию ACCEPT
- SELinux выкл.
- Windows Firewall остановлен
- Wireshark показывает что трафик ходит между прокси и клиентом

# python pydbgpproxy.py -i 10.0.8.159:9001 -d 127.0.0.1:9000 -l DEBUG

Далее, с клиента захожу на сайт, ниже ответ прокси в консоль.

INFO: dbgp.proxy: starting proxy listeners. appid: 2843
INFO: dbgp.proxy: dbgp listener on 127.0.0.1:9000
INFO: dbgp.proxy: IDE listener on 10.0.8.159:9001
INFO: dbgp.proxy: connection from 127.0.0.1:35189 [<__main__.sessionProxy instance at 0x277aab8>]
DEBUG: dbgp.proxy: session getting data
DEBUG: dbgp.proxy: data: ['441\x00<?xml version="1.0" encoding="iso-8859-1"?>\n<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///php/index.php" language="PHP" protocol_version="1.0" appid="2842" idekey="cli"><engine version="2.3.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright © 2002-2015 by Derick Rethans]]></copyright></init>\x00']
DEBUG: dbgp.proxy: session dispatching call '<?xml version="1.0" encoding="iso-8859-1"?>\n<init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///php/index.php" language="PHP" protocol_version="1.0" appid="2842" idekey="cli"><engine version="2.3.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright © 2002-2015 by Derick Rethans]]></copyright></init>'
WARNING: dbgp.proxy: No server with key [cli], stopping request [<__main__.sessionProxy instance at 0x277aab8>]
INFO: dbgp.proxy: session stopped
DEBUG: dbgp.proxy: destructor [<__main__.sessionProxy instance at 0x277aab8>]

Порты менял, для теста, на совсем другие. Результат всегда такой. Буду рад помощи. Спасибо!
Спасибо сказали:
Serega955
Сообщения: 35

Re: Apache / php5 + xDebug with proxy

Сообщение Serega955 »

Решение оказалось таким:

dbgpproxy.py - создала компания ActiveState, которая занималась разработкой протокола DBGp. Почитав об этом протоколе, в источниках, близкцих к официальным, я выяснил, что данный протокол требует прохождения процедуры регистрации клиента. В notepad++ и sublime text я таких функций не нашел(или их просто нету), пришлось установить phpstorm.
Спасибо сказали: