Pergunta

Eu tenho usado o eclipse-pdt em conjunto com xdebug e apache sem problemas, por mais de um ano. As coisas funcionaram perfeitamente e eu poderia fazer toda a depuração interativa que eu queria de dentro do Eclipse (usando minha própria máquina como um servidor).

Agora eu mudei de Apache para nginx (e, portanto, PHP agora não é executado como um serviço Apache, mas como fast-cgi) e não consigo encontrar uma maneira de eclipse configure a trabalhar muito bem com xdebug . Eu não sou nem certeza se o problema é com xdebug ou com eclipse (ou ambos) para ter certeza.

Na configuração eclipse já mudou a referência para o arquivo de configuração do PHP para /etc/php5/cli/php.ini.


As tentativas com a versão php.ini 1

Com o seguinte arquivo php.ini

zend_extension=/usr/lib/php5/20060613/xdebug.so
  • Eu vejo que xdebug está a funcionar (por exemplo, se eu faço um var_dump() I obter a versão xdebug dele, não o PHP uma simples)
  • Não posso ter a depuração interativa do eclipse: o navegador abre e carrega a página completamente com a URL típico contendo ...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=..., mas a execução do programa não pára em pontos de interrupção
  • No canto inferior direito da eclipse vejo uma mensagem suspeita: "O lançamento = put_the_name_of_my_project_here =: 57%" , que alterna com o "refrescante espaço de trabalho" um.

As tentativas com a versão php.ini 2

Se eu usar essa outra versão do arquivo (que é o que funcionou até eu mudei para nginx):

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req

Não consigo acessar qualquer página dos meus sites em tudo.


PS: Dados adicionais sobre a minha máquina: - OS: GNU / Linux - Ubuntu 9.10 64 bits. - PHP: 5.2.10-2ubuntu6.3 com Suhosin-Patch 0.9.7; v2.2.0 Zend Engine, Copyright (c) 1998-2009 Technologies Zend com Xdebug v2.0.4 - Eclipse:. veja a imagem

text alt

Foi útil?

Solução

O Beau disse é correto (não podiam votar desde que eu sou novo!).

Geralmente, a addging /etc/php5/cgi/php.ini (ou localizar php.ini) as linhas como

zend_extension = /PATH_TO/xdebug.so   ## <-- NOTE the absolute path, not relational (For ex on Windows: "C:\nginx-1.9.13\php\ext\php_xdebug-2.6.0RC2-7.0-vc14-nts.dll")
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9900        ## <-- Yours will be probly 9000 or other..

faz o trabalho.

Assim, após a mudança,

./php-fastcgi stop
./php-fastcgi start

Isso funcionou para mim.

Outras dicas

xdebug e FastCGI usar a mesma porta padrão (9000). Alterar a porta de XDebug em seu arquivo php.ini assim:

xdebug.remote_port=9001

e atualizar suas configurações de IDE para usar 9001.

Tente reiniciar o php. Porque você tem php-fastcgi, reiniciando nginx não parece fazê-lo. Quando eu reiniciado todo o meu servidor a alteração da mesma.

Eu tive o mesmo problema e resolveu.
No arquivo /etc/php5/apache2/php.ini add:

[xdebug] xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


No arquivo /etc/php5/cli/php.ini add:

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


Reinicie o Apache:

sudo service apache2 restart

Problema em solução é " xdebug.remote_autostart = on ". Se você definir na configuração do arquivo " xdebug.remote_autostart = on ". Isto irá forçar Xdebug para iniciar uma sessão de depuração para cada solicitação que é feito no servidor, sem ter que especificar no pedido de que uma sessão de depuração é procurado.

Você precisa mudar

" xdebug.remote_autostart = off "

E o serviço web reinício. Neste exemplo é Apache.

Você pode ler mais aqui: http://doc.waterproof.fr/phpedit / debugging_profiling / configuration / debugger_with_xdebug

GoodLuck!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top