Próbuję skonfigurować zdalne debugowanie dla PHP przy użyciu Xdebug i PhpStorm. Moja lokalna maszyna programistyczna ma system Windows 7, a maszyna zdalna ma CentOS 6.

Postępuję zgodnie z tym przewodnikiem bezskutecznie:

https://confluence.jetbrains.com/display/PhpStorm/Remote+debugging+in+PhpStorm+via+SSH+tunnel#RemotedebugginginPhpStormviaSSHtunnel-1.XdebugorZendDebuggerinstalledandconfigured

Mogę dobrze połączyć się z SSH, a moje ustawienia tunelu są dokładnie takie jak w przewodniku:

wprowadź opis zdjęcia tutaj

Gdy próbuję połączyć się z serwerem za pośrednictwem przeglądarki (z skonfigurowanymi odpowiednimi plikami cookie), w dziennikach Xdebug pojawia się następujący błąd:

# tail /tmp/xdebug.log
Log opened at 2016-05-25 09:53:36
I: Connecting to configured address/port: 127.0.0.1:9000.
E: Could not connect to client. :-(
Log closed at 2016-05-25 09:53:36

Log opened at 2016-05-25 09:55:36
I: Connecting to configured address/port: 127.0.0.1:9000.
E: Could not connect to client. :-(
Log closed at 2016-05-25 09:55:36

Oto moje /etc/php.d/xdebug.ini:

; Enable xdebug extension module
zend_extension=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"

Xdebug jest wymieniony w phpinfo()danych wyjściowych i z powodzeniem zapisuje błędy w dzienniku, więc nie sądzę, że problem dotyczy konfiguracji Xdebug. PhpStorm nasłuchuje połączeń i mogę bez problemu debugować witryny na moich komputerach lokalnych, ale zdalne debugowanie nie działa.

Wygląda na to, że PuTTy nie może ustanowić tunelu SSH.

Oto lista otwartych portów na serwerze:

# netstat --listening -n
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 :::80                       :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 ::1:25                      :::*                        LISTEN
udp        0      0 0.0.0.0:68                  0.0.0.0:*

O ile rozumiem, 9000port powinien coś słuchać . W przeciwnym razie, w jaki inny sposób PuTTy zamierza przesłać dane z serwera na mój komputer lokalny? Wszelkie pomysły, jak to naprawić i nawiązać prawidłowe połączenie? Może ma to związek z konfiguracją selinux lub SSH?

Victor Marchuk
źródło