Xdebug PHP fastcgi ve tutulma ile yapılandırma?

4 Cevap php

Ben bir yıldan fazla, sorunsuz xdebug ve apache ile birlikte eclipse-pdt kullanıyorum. Yapılacak sorunsuz çalıştı ve ben (bir sunucu olarak kendi makine kullanarak) Tutulma içinde istediği tüm hata ayıklama interaktif yapabilirdi.

Now I switched from apache to nginx (and therefore PHP runs now not as an Apache service but as fast-cgi) ve ben xdebug ile güzel çalışma tutulması yapılandırmak için bir yol bulamıyorum. Ben sorun emin olmak için xdebug veya Tutulma (veya her ikisi) ile ise, hiçbiri eminim.

Tutulma yapılandırmada zaten /etc/php5/cli/php.ini için PHP yapılandırma dosyasına başvuru değişti.


Attempts with php.ini version 1

Aşağıdaki php.ini dosya ile

zend_extension=/usr/lib/php5/20060613/xdebug.so
  • (Ben bir var_dump() ben bunu xdebug versiyonu değil, düz PHP biri olsun eğer örneğin) xdebug çalıştığını görmek
  • Ben Tutulma etkileşimli hata ayıklama olamaz: tarayıcı açılır ve ...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=... içeren tipik URL ile tamamen sayfasını yükler, ancak program yürütme kırılma noktaları bitmiyor
  • * "Atma = put_the_name_of_my_project_here =:% 57" * "refreshing workspace" biriyle dönüşümlü tutulmanın sağ alt köşesinde ben şüpheli bir mesaj görürsünüz.


Attempts with php.ini version 2

Ben dosyasının bu diğer versiyonu (ben nginx geçti kadar çalıştı ne olduğunu) kullanıyorsanız:

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

Ben de tüm sitelerin herhangi bir sayfasını erişemiyor.


Any help or suggestion appreciated, thank you in advance for your time!

PS: Additional data on my machine: - OS: GNU/Linux - Ubuntu 9.10 64 bit. - PHP: 5.2.10-2ubuntu6.3 with Suhosin-Patch 0.9.7; Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with Xdebug v2.0.4 - Eclipse: see screenshot. alt text

4 Cevap

Ne Beau dedi (ben yeniyim beri oy olamazdı!) Doğru.

Genel hatları gibi / etc/php5/cgi/php.ini için addging (veya php.ini bulun)

zend_extension = /PATH_TO/xdebug.so   ## <-- NOTE the path
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9900        ## <-- Yours will be probly 9000 or other..

iş yapar.

Yani değişiklikten sonra,

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

Bu benim için çalıştı.

xdebug ve FastCGI aynı varsayılan portu (9000) kullanın. Bu gibi php.ini dosyasında xdebug arasında bağlantı noktasını değiştirmek:

xdebug.remote_port=9001

ve IDE ayarlarını 9001 kullanmak için güncelleyin.

Lütfen php yeniden başlatmayı deneyin. Eğer FCGI Çünkü, nginx yeniden başlatmadan bunu yapmak için görünmüyor. Ben bütün sunucuyu yeniden başlatılması zaman değişiklik yürürlüğe girdi.

Problem in solution is "xdebug.remote_autostart = on". If you set in file config "xdebug.remote_autostart = on". This will force Xdebug to start a debug session for every request that is done on this server, without having to specify in the request that a debug session is wanted.

Siz değişiklik gerekiyor

"xdebug.remote_autostart = off"

And restart web service. In this example is Apache.

Daha fazla burada okuyabilirsiniz: http://doc.waterproof.fr/phpedit/debugging%5Fprofiling/configuration/debugger%5Fwith%5Fxdebug

GoodLuck!