2013-02-15 30 views
6

Ho battuto la testa contro questo per ore.XDebug ha smesso di funzionare in PHPStorm

Sono tornato a lavorare su PHPStorm dopo non averlo usato in un paio di settimane e per qualche motivo il debug non funziona più. Funzionava, ma ora non funziona e non ho idea di cosa stia succedendo.

Sono in esecuzione su Windows, utilizzando IIS, versione PHP 5.3.8. L'XDebug è installato e ho impostato la configurazione in PHP.ini seguendo le consuete istruzioni.

Quando eseguo phpinfo() tutto sembra normale (cioè XDebug è lì).

Ho ricontrollato varie impostazioni, scaricato una versione leggermente più recente di XDebug di quanto stavo usando (Xdebug v2.2.1), ma nulla sembra dargli un calcio in vita.

Qualcuno può darmi qualche indizio su cosa posso guardare in seguito?

UPDATE:

Ho passato qualche ora in più battere la testa contro questo, e non mi sembra di aver ottenuto molto di più. XDebug è installato e caricato, secondo phpinfo(). Ho acceso la registrazione, ma in realtà non mi dica molto, tranne che XDebug è infatti collegamento ...

Log opened at 2013-02-17 04:13:07 
I: Connecting to configured address/port: localhost:9000. 
I: Connected to client. :-) 
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///C:/web/dbg/index.php" language="PHP" protocol_version="1.0" appid="6912" idekey="PHPSTORM"><engine version="2.2.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init> 

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response> 

Log closed at 2013-02-17 04:13:07 

così sembra che il problema è sul lato PhpStorm, ma non riesco a vedere dove. Ho provato a creare un progetto molto semplice, ma non sono riuscito a farlo.

+2

Firewall che blocca le connessioni in entrata (è xdebug che si connette a IDE)? Porta errata configurata? Php.ini errato modificato (o caricato da PHP)? – LazyOne

+0

Penso che sia il php.ini giusto, perché posso vedere da phpinfo() che XDebug è caricato, ed è la versione che ho appena installato. Potrebbe essere una cosa firewall? Avrei pensato che, mentre mi collegavo alla macchina locale, non avrebbe dovuto passare attraverso alcun firewall, ma ci penserò su. C'è un modo per ottenere XDebug per registrare cosa sta succedendo? – xtempore

+0

http://xdebug.org/docs/all_settings#remote_log – CrazyCoder

risposta

18

Non lo odi quando passi ore a lottare con qualcosa, poi in preda alla disperazione prova qualcosa di semplice, e funziona?

Ho deciso di provare una porta diversa, 9001 invece del predefinito 9000 e ha funzionato!

ora mi rendo conto che ho recentemente installato Twonky (per lo streaming video al televisore), e quando ho controllato le impostazioni, non c'è stato ... porta 9000.

+1

Mi è venuto il più lungo tempo per pensare di controllare se qualcos'altro era in ascolto sulla porta 9000 ... Ho eseguito "sudo lsof -i: 9000' e ho ucciso quel processo. – allejo

+0

Nel mio caso il colpevole era _php-fpm_ (PHP FastCGI Process Manager). Anche la sua porta predefinita è 9000. – Glutexo

6

avuto lo stesso problema di questo pomeriggio - ha trovato questo domanda insieme a molte altre domande su SO quindi ho pensato di pubblicare la soluzione che ha risolto per me.

Manca una mappatura al file system. Il che è strano perché ho visto PHPStorm che mi ha avvisato quando mancavano in precedenza.

enter image description here

Speriamo che questo aiuta qualcuno in futuro :)

+0

Sono riuscito a farlo funzionare sullo stesso schermo disabilitando i mapping dei percorsi. – dwenaus

0

recenti versioni di PhpStorm hanno convalida Debugger. Il blog ufficiale PHPStorm has a writeup su questa funzione che potrebbe aiutarti a capirlo.

Uno snafu per me quando ho configurato una casella con php-fpm configurato è che php-fpm gira anche sulla porta 9000, quindi ho dovuto cambiare la porta configurata nelle preferenze php.ini e PHPStorm in qualcosa di simile a 9001.

per quel che vale, il mio attuale configurazione php.ini per xdebug:

[xdebug] 
zend_extension="/the/path/to/xdebug.so" 
xdebug.file_link_format="txmt://open?url=file://%f&line=%l" 
xdebug.remote_enable=1 
xdebug.remote_autostart=On 
xdebug.remote_port=9001 
xdebug.profiler_enable_trigger=1 
xdebug.max_nesting_level=250 
0

ho avuto lo stesso problema!Ho finalmente capito che tutte le mie configurazioni erano corrette, ma dal lato del browser, non avevo abilitato il debugging con il browser Chrome. Ogni browser ha il proprio modo di consentire al debug di iniziare a funzionare.

+0

C'è un modo per tutti i browser - aggiungere "?XDEBUG_SESSION_START = 1 "all'url. – bogatyrjov

0

Ho avuto lo stesso problema e ho risolto cancellando tutti gli orologi, e quindi riavviare PhpStorm

0

ho avuto lo stesso problema e ho provato tutte le soluzioni che ho trovato in SO e in altri siti (controllato che sia phpStorm e Xdebug si trovano sulle stesse porte, ho verificato che avessi il mapping del server sul file system, reinstallato Xdebug, ecc.) ma alla fine il problema era che eseguivamo il sito su un server interno e qualcuno dall'IT cambiava indirizzo IP del mio computer a un indirizzo che viene filtrato dagli indirizzi consentiti che possono essere collegati a quel server. Ecco perché phpStorm ha iniziato a ignorare i breakpoint di Xdebug.

Speriamo che questo possa aiutare qualcuno in futuro e salvarlo molte ore.

1

Aveva lo stesso problema dopo l'aggiornamento a El Capitan. Il primo accenno a quello che ho usato è Run -> Debug di convalida del server Web. Questo strumento di PHPStorm mi ha dato un suggerimento su xdebug.remote_host Sto usando v-hosts e si lamentava che localhost non fosse il valore corretto lì. Così ho aggiornato l'impostazione xdebug con xdebug.remote_connect_back=On e ha funzionato!

+0

La tua risposta mi aiuta, grazie Dopo la migrazione a PHP 7 sono stati creati nuovi file di configurazione per i moduli PHP, quindi tutte le mie impostazioni (incluso' xdebug.remote_connect_back = On') non sono state applicate –

-1

Trovato che se il file di registro xdebug non è scrivibile, potrebbe non funzionare. È sempre meglio impostare xdebug.remote_log e renderlo scrivibile.

+0

ha già scritto, questo perché xtempore porta la domanda con le informazioni del registro –

0

Ho risolto anche da solo, perché PHP-Storm e PHP-FPM stanno ascoltando la stessa porta ... basta uccidere tutte le porte php-fpm. enter image description here

Problemi correlati