2012-02-07 29 views
35

Fino a poco tempo fa, scrivevo codice in PHP (tramite Notepad ++) e eseguivo il debug controllando i log in IIS (devo amare il programma di installazione della piattaforma web); Da allora ho deciso di aggiornare ad un ambiente di scrittura/test di codice più efficiente, e dopo aver giocato per diversi momenti con PHPStorm, ho deciso di acquistarlo e provarlo. Da allora, mi sono reso conto che, per quanto riguarda le esercitazioni e le esercitazioni, PHPStorm sta arrivando un po 'in ritardo. Avendo dato uno sguardo al manuale (RTFM, lo so), e mi è venuta voglia, mi piacerebbe chiedere se qualcuno là fuori vorrebbe tenermi in mano attraverso l'impostazione di PHPStorm con XDebug in modo da poter smettere di odiarmi per non studiare il sistemi sottostanti abbastanza bene, e tornare alla codifica.PHPStorm + XDebug Setup Soluzione

TLDR; Qualcuno potrebbe pubblicare un dettagliato walk-through per configurare PHPStorm + XDebug? Assumendo il massimo livello di stupidità da parte mia (di solito sono più che capace nel mondo ASP.NET, ma mi avvicino al livello di intelligenza solitamente associato a qualche forma di spugna marina nel mondo di PHP)

l'ambiente è Windows 7 Ultimate (64-bit) con IIS & PHP installato

+0

Non è una risposta diretta alla sua domanda, ma ci sono una serie di aiutanti Xdebug disponibile per tutti i principali browser, che lo rendono facile da collegare alla vostra sessione di debug. Dai un'occhiata a https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc per Chrome. – keithl8041

+0

Sei passato da Blocco note a PHPStorm :) :) lol – Datadimension

risposta

11

E 'davvero semplice per ottenere Xdebug lavorare con PhpStorm, solo follow this guide carefully.. (NOTA:Updated version of the guide is here)

per argomenti più avanzati read this

+0

Devo scaricare la versione TS o non TS di XDebug? Il generatore di istruzioni automatico non può analizzare nulla di utile dalle informazioni "php -i" che ho dato. – user978122

+0

Dipende dalla versione di PHP che avete, controllate l'output di phpinfo() su una pagina dummy o cercate di capirlo dal 'php -i' stesso. – CrazyCoder

+0

Hmm. La versione con thread sembra essere la più appropriata, ma mancano le istruzioni per l'installazione ... – user978122

28

Ho trovato una soluzione più moderna e più semplice parzialmente basata sul post di CrasyCoder. I passi che devi fare sono le seguenti:

  1. Se la marca nuova installazione di PHP non contiene php.ini, rinominare il file php.ini-sviluppo di php.ini
  2. Installare xdebug con l'aiuto di la procedura guidata: http://xdebug.org/wizard.php Seguire le sue raccomandazioni alla lettera.
  3. Inserisci la stringa php.ini nella stringa: xdebug.remote_enable = 1
  4. Vai alle impostazioni di PhpStorm: settings-> php. Seleziona o riseleziona la directory contenente php. Assicurarsi che si vede 'Debugger: Xdebug xxx' stringa (dove xxx sta per versione installata)
  5. Installare un'estensione per il browser preferito da qui: http://xdebug.org/docs/remote
  6. Dal menu principale (non la finestra delle impostazioni) vai a 'Run -> Modifica configurazioni 'e aggiungi la nuova configurazione' PHP Server Web incorporato '. Puntare la "radice del documento" nella directory del progetto. Annota il numero di porta.
  7. Browser Chrome: abilita l'estensione premendo sul piccolo bug nel lato più a destra della omnibox e selezionando l'opzione Debug. Le estensioni di altri browser dovrebbero funzionare in modo simile.
  8. Nel menu di PhpStorm abilitare l'opzione 'Esegui -> Inizia ascolto per connessioni di debug PHP'.
  9. Imposta un punto di interruzione nel codice in PhpStorm.
  10. Run (non debug) la configurazione creato nel passaggio 6.
  11. Nel browser andare a localhost: port dove 'porta' è la porta dal punto 6. Il tuo PhpStorm dovrebbe fermarsi sul punto di interruzione e si può iniziare a schiacciamento bug nel tuo codice.

Considerato che:

Passi 1-5 vengono effettuati una volta ogni installazione di PHP.
Il passaggio 6 viene creato una volta per progetto PhpStorm.
I passaggi 7-8 vengono eseguiti una volta per sessione di debuggin.
I passaggi 9-11 vengono eseguiti ogni programma.

+0

Bella soluzione, grazie. Ma: "Errore: il server web integrato è disponibile solo da PHP 5.4" Il mio è 5.3.8 ... – Ralf

+0

Per favore non dare per scontato che tutti stiano usando il webserver integrato di PHP. Le istruzioni sono necessarie per l'utilizzo di questo con una configurazione Nginx e FPM esistente/configurata. – Morgon

+0

Ho saltato il passaggio 8 (doh!) Grazie signore! –

7

Ho avuto alcuni problemi quando ho toccato il debug remoto di XDebug la prima volta ieri.

Alcuni accenni generali, sei comunque sopraffatto con vari tutorial e guide.

  • La configurazione XDebug su PHP/Aache lato:
    xdebug.remote_enable = 1
    xdebug.remote_port = 9000
    xdebug.idekey = PhpStorm
    xdebug.remote_connect_back = 1
  • Hai bisogno di uno usa remote_connect_back come indicato sopra (attenzione, questo significa che anche altre persone possono eseguire il debug del tuo server mentre è abilitato) o specificare il tuo indirizzo IP (remote_host).
  • Dal lato client è necessario far avanzare il router su Port 9000!
  • È necessario consentire PHPStorm per le connessioni in ingresso nel firewall (non è stato abilitato per impostazione predefinita su Windows 8 per me). Aprire la porta 9000 o l'app stessa.
  • Su PHPStorm assicurati di accedere alla configurazione Debug e non utilizzare il debug predefinito (PHPUnit!) Usa "Debug remoto PHP" (Esegui/Debug Configurazioni -> Il segno PLUS in alto a sinistra)
  • Dovrai dire PHPStorm il percorso assoluto del tuo progetto sul webserver, se fai un errore qui (e dimenticalo), riceverai comunque un prompt.
  • Ora esegui il debug del tuo progetto in PHPStorm mentre è attivo "Ascolta connessioni" e inserisci un punto di interruzione nel codice.
  • Con il tuo browser web apri il tuo sito web/file php mentre hai un cookie abilitato che avvia il debugger. (il cookie è l'approccio migliore nella maggior parte dei casi). È possibile utilizzare un segnalibro (google per il segnalibro di debug di phpstorm) o un'estensione.

Anche seguendo le guide, ho perso molti dei punti sopra. Spero di poter salvare alcune ore di lotta :)

+0

Più uno per xdebug.remote_connect_back = 1 parte! Grazie – rfsbsb

+0

Stai attento con le impostazioni, è pericoloso se lo mantieni accidentalmente. – John

7

1. installare il modulo xdebug(procedura di installazione MAC)
1.1.1. controllare quale versione di PHP usa php --ini (vedere il file caricato)
1.1.2. brew search xdebug
1.1.3. brew install phpXX-xdebug
1.1.4. vedi dettagli: php -i | grep xdebug
1.2. restart server
1.3. configurazione
1.3.1. sudo find /usr -name 'xdebug.so'
1.3.2. copia il percorso dell'esatto di cui hai bisogno
example: /usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so
1.3.3. modificare il file di configurazione relativo all'estensione che deve essere automaticamente iniettato al php.ini principale:
subl /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini
1.3.4.aggiungere il zend_extension essere = il percorso copiato sopra

[xdebug] 
zend_extension="/usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so" 

file normale dovrebbe avere qualcosa di simile:

[xdebug] 
zend_extension="/usr/local/Cellar/php56/5.6.4/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so" 


xdebug.remote_enable=1 
xdebug.remote_host=localhost 
xdebug.remote_port=9000 
xdebug.remote_handler="dbgp" 
xdebug.remote_autostart=1 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp" 
xdebug.idekey=PHPSTORM 

2. Verificare la versione di PHP
php --ini
3. setup Impostazioni IDE
preferenza> lingue e framework> PHP>
3.1. imposta il livello di lingua sulla versione PHP corretta di questo progetto
3.2. impostare un interprete (impostare la directory padre di dove è caricata la directory bin dell'eseguibile PHP)
3.2.1. fare clic sul pulsante ...> fare clic sul pulsante +> altro locale> PHP impostare il percorso eccitabili,
per trovare il tipo di percorso nel terminale: $ which php
example: /usr/local/Cellar/php56/5.6.5/bin/php
4. riavvio PhpStorm
5. ora rendiamolo lavoro
5.1. esegui> modifica configurazione> fai clic sul pulsante verde + a sinistra> seleziona b. Applicazione web php
5.2. nome: qualsiasi esempio ur {nome applicazione - debugger}
5.3. server: localhost (sfoglia> +> nome: qualunque | host: localhost o 127.0.0.1)
5.4. fare clic su ok
5.5. url iniziale: il link della homepage del progetto: http://127.0.0.1:80/SomethingNew/
5.6. Fare clic su OK
6. ora impostare il punto di rottura e fare clic su debug

+1

La migliore soluzione che ho visto sull'argomento. Funziona come un fascino! Grazie! –

2

Se non avete bisogno di debug remoto, si può facilmente eseguire il debug del progetto.

Prima controlla le impostazioni di php.ini.

Assicurarsi che il file xdebug dll esista e che le impostazioni siano attive.

xdebug.remote_enable = on 
xdebug.profiler_enable = on 
xdebug.profiler_enable_trigger = on 
xdebug.profiler_output_name = cachegrind.out.%t.%p 
xdebug.profiler_output_dir = "c:/wamp/tmp" 
xdebug.show_local_vars=0 

Quindi andare al menu Esegui nella barra di navigazione superiore. Quindi selezionare modifica configurazioni e aggiungere nuova configurazione (non modificare le impostazioni predefinite per un altro progetto)

phpStorm add new configuration Fare clic sul pulsante Aggiungi nuovo elemento.

Dopo aver aggiunto nuova applicazione web php

Se non si dispone di un server (punti in genere il localhost con 80 porta su Windows o Linux) fare clic sul pulsante indicato come di seguito.

enter image description here

aggiungere un nuovo server con xdebug.

enter image description here

fare clic su OK e verificare la configurazione

enter image description here

Infine, si vedrà la configurazione sul lato destro della ide.

enter image description here

Fare clic sul pulsante DEBUG RUN o.

enter image description here

enter image description here

+0

Sei l'uomo che mi ha salvato la vita! –