Como ativar o xdebug com o nginx?
Minha situação é a seguinte:
Eu tenho uma VM (Ubuntu Server 13.04) com PHP 5.4.9-4ubuntu2.2, nginx / 1.2.6, php5-fpm e Xdebug v2.2.1.
Estou desenvolvendo um aplicativo usando o PhpStorm 6.0.3 (que eu implanto na VM).
Meu problema é, sempre que tento iniciar uma sessão de depuração, o IDE nunca recebe uma solicitação de conexão do servidor da Web (e, portanto, a sessão nunca é iniciada).
Analisei muitas recomendações sobre a configuração do xdebug e não encontrei nada útil.
O que eu percebi recentemente é que se eu definir o cookie XDEBUG_SESSION eu mesmo através do navegador (Obrigado FireCookie) eu posso depurar meu aplicativo ... então meu palpite é que há algo impedindo o servidor web de enviar o cookie de volta para o cliente.
O fato é que estou usando a mesma configuração IDE em um projeto diferente, que é implementado em uma VM diferente baseada no CentOS (com lighttpd), e funciona muito bem.
Tentei implantar meu projeto atual em tal VM (mudando o servidor para NginX) e funcionou bem (infelizmente perdi essa VM e não consigo verificar a config :().
Então ... aqui está minha configuração do NginX:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name localhost;
location / {
try_files $uri $uri/ /dispatch.php;
}
#
location ~ \.php$ {
root /var/www/bresson/web;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index dispatch.php;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9009;
}
}
fpm config (/etc/php5/fpm/pool.d/www.conf):
listen = /var/run/php5-fpm.sock
xdebug.ini:
zend_extension=/usr/lib/php5/20100525/xdebug.so
xdebug.remote_port=9000
xdebug.remote_enable=On
xdebug.remote_connect_back=On
xdebug.remote_log=/var/log/xdebug.log
Qualquer ideia será muito apreciada. Obrigado!
EDITAR:
Outra coisa que tentei foi iniciar uma sessão do php e vi que o cookie da sessão foi criado sem nenhum problema ...
2ª edição:
Acho que encontrei onde está o problema: o URI.
Eu escrevi outro script para testar os parâmetros de configuração e outras coisas (muito mais simples), e funcionou bem.
Então, eventualmente, percebi que o problema era que os parâmetros de consulta (ou seja:XDEBUG_SESSION_START=14845
) não estavam chegando ao meu roteiro.
O problema é o meu URI inicial, que é da forma/images/P/P1/P1010044-242x300.jpg
. Através de alguma configuração de host virtual, eu deveria ser capaz de direcioná-lo para algo parecido/dispatch.php/images/P/P1/P1010044-242x300.jpg
e use o resto do URI como parâmetros. Então ... Eu não encontrei uma solução por si só, mas agora eu tenho uma solução viável (apontando minha URL inicial para/dispatch.php
) que vai fazer isso por um tempo. obrigado