2012-04-01 30 views
22

Instalé Xdebug y todo estaba bien, hasta que de repente dejó de funcionar. phpinfo() da un buen resultado de XDebug con todas las variables.Xdebug dejó de funcionar, ¿dónde busco errores?

php -m | grep deb 

también da dos veces XDebug (por Zend y PHP), lo que de nuevo se ve muy bien. Mi php.ini tiene estas líneas:

zend_extension=/usr/lib/php5/20090626/xdebug.so 
;extension=xdebug.so 
xdebug.remote_host=localhost 
xdebug.remote_enable=on 
xdebug.remote_port=9001 
xdebug.remote_handler=dbgp 
xdebug.remote_connect_back=1 

Y, sin embargo, cuando se ejecuta este código debe comprobar con XDebug (de documentos Netbeans) es sólo atascado. Entonces, no IDE está trabajando con XDebug.

<?php 
$address = '127.0.0.1'; 
$port = 9001; 
$sock = socket_create(AF_INET, SOCK_STREAM, 0); 
socket_bind($sock, $address, $port) or die('Unable to bind'); 
socket_listen($sock); 
$client = socket_accept($sock); 
echo "connection established: $client"; 
socket_close($client); 
socket_close($sock); 

Además, de acuerdo con la instalación de XDebug, fui dos veces siguiendo los pasos. ¿Qué pasa con mi configuración? Gracias.

+0

incluso después de la adición de xdebug.remote_log = "/ tmp/xdebug.log" y reiniciar Apache 2, y se ejecuta una aplicación en el registro está vacío ... – valk

Respuesta

10

Al final, me quedan solo dos soluciones: reinstalar el sistema operativo Ubuntu o instalar una nueva máquina virtual especialmente para xdebug, voy por la segunda. Lo curioso es que todo estaba funcionando de acuerdo con el "RTM" (f = volviendo loco). Una cosa que no pude descifrar es cómo leer los registros de XDebug para comprender dónde está el verdadero problema.

ACTUALIZACIÓN

Después de un forcejeo, suprimí cada línea relacionada con XDebug de cada php.ini que tenía. Y movió estas líneas a /etc/php5/conf.d/xdebug.ini. Se reinició Apache, y luego PHPStorm, y funciona. P.S. en el medio, intenté instalar xdebug con pecl, desde github y la versión estándar de Ubuntu. Creo que el que compilé actualmente está funcionando. Y ... el registro también se actualiza.

;xdebug configuration 
zend_extension = /usr/lib/php5/20090626/xdebug.so 
xdebug.remote_host = 127.0.0.1 
xdebug.remote_enable = 1 
xdebug.remote_port = 9000 
xdebug.remote_handler = dbgp 
xdebug.remote_mode = req 
xdebug.profiler_enable=0 
xdebug.profiler_enable_trigger=1 
xdebug.remote_autostart=1 
xdebug.idekey=PHPSTORM 
xdebug.remote_log="/tmp/xdebug.log" 
0

puerto de verificación no está ocupada, netbeans de verificación está configurado para escuchar a ese puerto (Veo que tienes 9001, 9000 es por defecto por lo general) también cuando puedo depurar con Eclipse tengo que "terminar y relanzamiento" de la depuración sesión de vez en cuando ya que deja de funcionar, nunca entendí por qué, sospecho que algún tipo de sesión de depuración expiró

2

Tuve este problema también en Ubuntu después de actualizar php. Para mí, girando sobre los errores de HTML en php.ini tiene Xdebug con Netbeans a trabajar de nuevo ...

sudo vi /etc/php5/apache2/php.ini 
display_errors = On 
html_errors = On 

y reiniciar Apache:

sudo /etc/init.d/apache2 restart 

http://ubuntuforums.org/showpost.php?p=9592364&postcount=14

6

En el servidor, intente esto comando:

$ netstat -anp | grep CLOSE_WAIT

Any: 9000 entradas se darte problemas con XDebug; considere kill -9 <pid>.

+0

Para aquellos no completamente familiarizados con Linux, el PID en ubuntu para mí el uso de este comando fue la última columna: 3131/apache2 PID = 3131 – espradley

1

I comprobado mi

netstat -anp salida

y descubrimos que había número de sockets abiertos (en intervalo de puertos XDebug) por proceso maestro en mi máquina remota [corriendo Xdebug] .

La eliminación del proceso 'maestro' me solucionó el problema.

Pareció una situación de desbordamiento de puertos para mí. Pensé que la información podría ser útil para algunos.

Cuestiones relacionadas