26 Aug 2015
PREMESSA
La seguente guida dà per scontato che abbiate configurato un web server a vostra scelta (apache, nginx).
Il sistema operativo utilizzato è Linux Mint ma vanno bene tutte le derivate Debian come Ubuntu.
Il web server in questione è Apache2.
INSTALLAZIONE XDEBUG
- installare
php-pear
tramite il comando:
sudo apt-get install php-pear php5-dev
- installare
xdebug
tramite il comando:
sudo pecl install xdebug
- modificare il file
php.ini
:
sudo nano /etc/php5/apache2/php.ini
aggiungendo questi dati alla fine del file:
zend_extension=xdebug.so
xdebug.force_display_errors=1
xdebug.force_error_reporting=1
xdebug.cli_color=1
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=1024
xdebug.var_display_max_depth=50
xdebug.max_nesting_level=1000
xdebug.remote_enable=1
xdebug.idekey=MYCUSTOMKEY
xdebug.remote_autostart=1
- salvare il file con
CTRL+O
e uscire conCTRL+X
NOTE: xdebug.idekey = MYCUSTOMKEY
è un valore a vostra scelta che andrà inserito poi in phpstorm
- riavviare il web server:
sudo service apache2 restart
CONFIGURAZIONE PHPSTORM
- premere
CTRL+Maiusc+A
e cercare “Plugins”
- cliccare su Browse repositories
- cercare “remote call” e installare il plugin
- riavviare phpstorm per completare l’installazione
CONFIGURAZIONE PHPSTORM – Progetto
- File > Settings
- cercare “remote call”
- togliere la spunta su “Allow requests to ‘localhost’ only”
- cliccare su Apply e poi su OK
CONFIGURAZIONE PHPSTORM – Debugger
- Run > Edit Configurations
- aggiungere un nuovo “PHP Remote Debug”
- sotto “Servers”: aggiungere un nuovo server con debugger Xdebug (i campi rimanenti sono in base a come avete impostato il vostro server web, solitamente tutto localhost)
- Ide key(session id): impostare il valore precedentemente scelto, qui nell’esempio
MYCUSTOMKEY
- salvare il tutto
- avviare il debugger aggiungendo anche un breakpoint per verificare che tutto sia corretto
ATTENZIONE!
Magento è meglio che abbia la cache disabilitata altrimenti al refresh non viene “attivato” il debugger.
In ogni caso la presente configurazione può essere utilizzata anche in altri contesti.