Estoy tratando de convertir mi configuración de desarrollo XAMPP reciente en una pila LAMP basada en WSL2.
Hasta ahora he tenido éxito. Puedo acceder a mi página de prueba test.php que contiene <?php phpinfo(); a través de https://localhost/test.php (utilizando un certificado autofirmado para fines de desarrollo).
Lamentablemente, estoy completamente atascado en hacer que Xdebug funcione.
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(Ya he estado revisando estos hilos, pero fue en vano:
Mi configuración:
Mi configuración de Xdebug en /etc/php/8.0/apache2/php.ini :
[xdebug] xdebug.mode=debug xdebug.remote_port=9003 xdebug.client_port=9003 xdebug.start_with_request=yes xdebug.remote_host=localhost xdebug.idekey=PHPSTORM xdebug.discover_client_host=1 ;xdebug.client_host=localhost ;xdebug.remote_enable=1 ;xdebug.remote_handler=dbgpIntenté comentar "discover_client" y configurar explícitamente el host del cliente en localhost. Ningún cambio.
La salida de phpinfo() parece indicar que estas configuraciones no se ignoran. Ver captura de pantalla de las partes relevantes .
Las configuraciones relevantes para el host virtual en /etc/apache2/sites-available/default-ssl.conf son:
<VirtualHost: *:443> ServerName localhost DocumentRoot "/mnt/d/projects/testproject/public" <Directory "/mnt/d/projects/testproject/public/"> Options +Indexes +Includes +FollowSymlinks +MultiViews AllowOverride All Require all granted </Directory> </VirtualHost>(El "todo concedido" es solo temporal durante la depuración)
No sé si esto es relevante, pero me aseguré de que C:\Windows\System32\drivers\etc\hosts contiene
127.0.0.1 localhost ::1 localhostAsí que cuando corro
php -dxdebug.mode=debug /mnt/d/projects/testproject/public/test.phpyo obtengo
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(¿Alguien ve el problema? ¿O alguien puede darme una pista sobre dónde buscar a continuación?
La opción xdebug.start_with_request = yes le dice a Xdebug que intente depurar cada solicitud/secuencia de comandos. Si Xdebug no puede conectarse al cliente de depuración (toma valores de xdebug.client_host y xdebug.client_port , o el host detectado automáticamente si xdebug.discover_client_host está habilitado), entonces le notifica al respecto.
Normalmente, tales mensajes se escribirán en el registro de errores estándar de PHP. Parece que no lo tiene configurado en absoluto en su php.ini (ya que así es como viene por defecto), por lo tanto, PHP lo envía a su salida estándar.
Si desea evitar que aparezca en la salida de su terminal, debe apuntar el error_log de PHP a una ubicación válida.
Ejemplo de cómo lo resolví en mi caso:
1- Edita tu archivo ini:
sudo vi /etc/php/7.4/cli/php.ini
2- Y añade esta línea:
error_log = /var/www/log/php_error.log
NOTA: Cambie las rutas anteriores a cualquier directorio válido que desee.
3- Vuelva a intentarlo y la advertencia debería desaparecer y ahora va al archivo de registro.