Debug PHP script di riga di comando in PhpStorm
-
24-10-2019 - |
Domanda
PhpStorm come il mio strumento principale per il debug PHP e sono molto contento. Finora ho usato Firefox per eseguire gli script, e le catture PhpStorm pause perfettamente.
Ora ho una situazione in cui io sono in esecuzione uno script PHP tramite linea di comando (non del browser) e voglio sapere se c'è un modo per impostare PhpStorm alle interruzioni di cattura durante l'esecuzione di uno script PHP tramite linea di comando?
Soluzione
orologio / voto il relativo problema PhpStorm.
Al di configurazione momento è un po 'complicato. Dovrebbe essere possibile eseguire il debug come descritto nel Zend KB , con un server di falso e Php Remote Debug di configurazione in PhpStorm. Si noti che questo tutorial è un errore, è necessario QUERY_STRING set come questo (su Windows):
SET "QUERY_STRING=start_debug=1&debug_port=10137&debug_host=127.0.0.1&debug_stop=1&no_remote=1&debug_session_id=10000"
(si noti la differenza nel citare che è importante).
Set up PhpStorm come mostrato screenshots:
Premere il tasto Debug sulla barra degli strumenti principale. PhpStorm inizierà ad ascoltare per le connessioni debugger.
Nella riga di comando eseguire lo script:
d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php
PhpStorm colpirà il punto di interruzione:
Questo è stato testato su Windows con l'installazione Zend Server, ma dovrebbe essere simile su altri sistemi e con xdebug.
Se si desidera eseguire il debug direttamente da PhpStorm, uso script php Esegui / Debug tipo di configurazione. Il vostro esempio PHP configurata per questo progetto deve avere Zend Debugger o Xdebug attivata nei file di configurazione.
home PHP e del debugger modalità possono essere specificati in File | Settings | PHP
.
Proprio verificata con l'installazione Zend Server (PHP casa: d:\dev\zend\ZendServer\bin
). E Zend Debugger, funziona perfettamente per me
Altri suggerimenti
Per attivare PHP debuging con Xdebug sulla linea di comando / shell con PhpStorm è molto semplice:
export XDEBUG_CONFIG="idekey=PHPSTORM"
In windows CLI, l'uso insieme al posto di esportazione.
set XDEBUG_CONFIG="idekey=PHPSTORM"
Assicurarsi PhpStorm sta ascoltando le connessioni PHP Debug.
Per il debug disabilitare dalla fine riga di comando:
unset XDEBUG_CONFIG
Questa (PhpStorm) è il PhpStorm IDE-Key di default.
- Fare clic su Esegui.
- Fare clic su Modifica configurazioni ...
- Fai clic sul verde +
- Seleziona script PHP.
- Fornire un nome nel campo Nome.
- Fornire il percorso completo dello script nel campo File.
- Fare clic su OK.
- Selezionare lo script appena configurato in questa discesa:
- Fare clic sul pulsante di esecuzione o di debug. Lo script dovrebbe funzionare e dovrebbe raccogliere eventuali punti di interruzione impostati.
Se si esegue lo script, si può vedere l'uscita qui:
Se si esegue il debug lo script, si può vedere l'uscita qui:
Verificare che le variabili di ambiente e SERVER_NAME
SERVER_PORT
sono set. PhpStorm bisogno di loro per fare la mappatura destra. Metterli con l'esportazione in bash o manualmente nel PHPScript. In entrambi i casi PhpStorm può trovare poi sotto $_SERVER['SERVER_NAME']
e $_SERVER['SERVER_PORT']
correttamente.
Per me (su MacOS) ha funzionato in questo modo:
export XDEBUG_CONFIG="idekey=12345"
Nessuno di questi suggerimenti sono stati lavorando bene per me.
Se si è nella stessa situazione provare questo comando (controllare il giusto percorso interprete php)
/usr/bin/php -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 [PHP_SCRIPT]
In MacOS, stavo usando bash_profile diverso. Ho dovuto correre seguente comando prima:
source ~/.bash_profile
Questo ha cambiato la mia php da built-in / usr / bin / php a quello installato tramite XAMPP. XDebug del PhpStorm ha iniziato a lavorare dopo il comando sopra.