Domanda

Sono stato con eclipse-PDT in collaborazione con xdebug e apache senza problemi, per oltre un anno. Le cose funzionava benissimo e ho potuto fare tutto il debug interattivo che volevo da dentro Eclipse (usando la mia macchina come server).

Ora sono passato da Apache a nginx (e quindi PHP ora non viene eseguito come un servizio di Apache, ma come fast-cgi) e non riesco a trovare un modo per configurare Eclipse per lavorare bene con xdebug . Io non sono né sicuro se il problema è con xdebug o con Eclipse (o entrambi) per essere sicuri.

Nella configurazione eclisse ho già cambiato il riferimento al file di configurazione di PHP per /etc/php5/cli/php.ini.


I tentativi con la versione php.ini 1

Con il seguente file php.ini

zend_extension=/usr/lib/php5/20060613/xdebug.so
  • Vedo che xdebug sta lavorando (per esempio se faccio un var_dump() ottengo la versione xdebug di esso, non il PHP piana)
  • Non posso avere il debug interattivo da Eclipse: il browser si apre e carica della pagina con l'URL tipica contenente ...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=..., ma l'esecuzione del programma non si ferma a punti di interruzione
  • Nell'angolo in basso a destra della eclisse vedo un messaggio sospetto: "Avvio = put_the_name_of_my_project_here =: 57%" che si alterna con il "spazio di lavoro rinfrescante" uno.

I tentativi con la versione php.ini 2

Se io uso questa altra versione del file (che è ciò che ha funzionato fino a quando sono passato a 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

Non riesco ad accedere qualsiasi pagina dei miei siti a tutti.


PS: Ulteriori dati sulla mia macchina: - OS: GNU / Linux - Ubuntu 9.10 64 bit. - PHP: 5.2.10-2ubuntu6.3 con Suhosin-Patch 0.9.7; Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies con Xdebug v2.0.4 - Eclipse: vedi screenshot

.

alt text

È stato utile?

Soluzione

Che Beau detto è corretto (non poteva votare visto che sono nuovo!).

In generale, addging a /etc/php5/cgi/php.ini (o individuare php.ini) le linee come

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..

fa il lavoro.

Così, dopo la modifica,

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

Questo ha funzionato per me.

Altri suggerimenti

xdebug e FastCGI utilizzano la stessa porta di default (9000). Cambiare la porta di XDebug nel file php.ini in questo modo:

xdebug.remote_port=9001

e aggiornare le impostazioni IDE per utilizzare 9001.

Prova a riavviare il php. Perché hai php-FastCGI, riavviando nginx non sembra farlo. Quando ho ripartito tutto il mio server la modifica ha avuto effetto.

Ho avuto lo stesso problema e risolto.
Nel file di /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


Nel file di /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


Riavviare Apache:

sudo service apache2 restart

Problema in soluzione è " xdebug.remote_autostart = on ". Se si imposta nel file di configurazione " xdebug.remote_autostart = on ". Questo costringerà Xdebug per avviare una sessione di debug per ogni richiesta che viene fatta su questo server, senza dover specificare nella richiesta che una sessione di debug è voluto.

È necessario modificare

  

" xdebug.remote_autostart = off "

E riavviare il servizio web. In questo esempio è Apache.

Si può leggere di più qui: http://doc.waterproof.fr/phpedit / debugging_profiling / configurazione / debugger_with_xdebug

GoodLuck!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top