8051 Letture

Debug PHP con Z-Ray: ottimizzare pagine PHP lente, risolvere problemi negli script

Non è cosa infrequente per lo sviluppatore trovarsi dinanzi ad applicazioni web che non funzionano a dovere ed, in particolare, confrontarsi con pagine PHP lente, che non vengono caricate nel modo corretto.

Di Zend Server abbiamo più volte parlato in passato: si tratta di un prodotto che si propone come obiettivo primario quello di mettere nelle mani dello sviluppatore così come in quelle dell'amministratore di un server web uno strumento affidabile per eseguire, in tutta sicurezza, applicazioni "mission critical" scritte in PHP.
Zend Server, oltre a supportare le varie versioni di PHP oggi disponibili (5.4 e 5.5) e supportate dal team di sviluppo, integra una serie di strumenti per velocizzarne l'elaborazione lato server. Un efficacissimo meccanismo di caching degli script PHP consente di dispensare il server web dall'elaborazione del medesimo codice non appena questo dovesse essere nuovamente richiesto.
Nell'articolo PHP a tutta velocità: come aggiornare Zend Server all'ultima versione ci eravamo soffermati sui passi avanti che Zend Server fa compiere, anche su piattaforma Windows, quando risulta necessario eseguire applicazioni web, comprese quelle più complesse, scritte in PHP.

La funzionalità battezzata con l'appellativo Z-Ray è sicuramente la punta di diamante dell'ultima versione di Zend Server - Zend Server 7.0 - rilasciata appena qualche settimana fa.
Z-Ray rappresenta un po´ il Santo Graal dello sviluppatore dal momento che consente di conoscere, in tempo reale, cosa accade durante il caricamento di una pagina PHP. La nuova funzionalità appena lanciata dall'israeliana Zend dà modo di verificare le funzioni caricate, le interrogazioni SQL eseguite, le variabili utilizzate, errori ed avvisi, gli eventi lato server, la memoria impiegata nonché di ottenere informazioni sulle performance.
In particolare, Z-Ray permette di scoprire quali query SQL vengono eseguite faticosamente (ad esempio perché non ottimizzate o, peggio, scritte in maniera superficiale), su quali operazioni - impartite attraverso l'utilizzo di codice PHP - il server è costretto a perdere più tempo e così via.
La nuova funzionalità di Zend Server, inoltre, fornisce un quadro preciso circa l'uso della memoria del server: script PHP troppo pesanti possono contribuire a mettere in crisi la macchina. Ecco perché Z-Ray è importante, sia nella fase di sviluppo e di verifica (in locale) di un'applicazione web, sia "in produzione" quando l'applicazione web è ormai utilizzata sul server.

Compatibile con Windows, Linux, Mac OS X ed IBM i, Zend Server 7.0 può essere interfacciato ad esempio con i web server Apache e Microsoft IIS.
La procedura d'installazione si occupa di predisporre il funzionamento di Zend Server e preparare l'interfaccia di amministrazione web, accessibile digitando http://localhost:10081 nella barra degli URL del browser.


Nella sezione Configurations, Z-Ray, si troveranno le opzioni per abilitare, all'occorrenza, la funzionalità Z-Ray.
Z-Ray dovrà essere ovviamente attivato solo su una macchina che si utilizza per scopi di sviluppo e non sul server usato "in produzione". Diversamente, si rischierebbero di mostrare a tutti gli utenti che stanno adoperando l'applicazione web tutti i segreti del "dietro le quinte", compresi dati sensibili, informazioni personali, nomi utente e password.
Sulle macchine già utilizzate per scopi produttivi, quindi, è caldamente sconsigliato utilizzare l'opzione Enabled. È invece possibile, eventualmente, scegliere Secured e creare un token (sezione Access tokens) che permetterà di accedere a Z-Ray.
In altre parole, solo l'utente che aggiungerà all'URL della pagina PHP la lunga stringa riportata da Zend Server potrà interagire con gli strumenti messi a disposizione da Z-Ray.

Debug PHP con Z-Ray: ottimizzare pagine PHP lente, risolvere problemi negli script

Dopo aver riavviato Zend Server (pulsante Save and Restart Zend Server), richiamando una qualunque pagina PHP sul server, in calce alla stessa apparirà la barra aggiuntiva di Z-Ray:

Debug PHP con Z-Ray: ottimizzare pagine PHP lente, risolvere problemi negli script

I vari pulsanti, da sinistra verso destra, consentono di accedere all'elenco di tutte le richieste inviate dalla pagina PHP al server web, di mettere in pausa e di riprendere il monitoraggio, di avere indicazione del tempo necessario per l'elaborazione dello script PHP, per l'accesso al database in lettura/scrittura, per l'accesso al disco e per l'utilizzo di risorse di rete:

Debug PHP con Z-Ray: ottimizzare pagine PHP lente, risolvere problemi negli script

Il successivo pulsante (Monitor events) consente di controllare gli eventi eventualmente scatenati a seguito dell'esecuzione dello script lato server. Qui sono proposti avvisi informativi così come informazioni a criticità maggiore.
Analogamente, il pulsante Error & Warnings dà modo di visualizzare eventuali errori durante l'esecuzione del codice PHP.

Per quanto concerne le query SQL, Z-Ray provvede ad "intercettare" tutte le interrogazioni dirette alle basi di dati usando le estensioni MySQLi, MySQL, DB2, OCI, PDO in generale.

Debug PHP con Z-Ray: ottimizzare pagine PHP lente, risolvere problemi negli script

Molto utile anche il successivo pulsante Functions che espone tutte le funzioni utilizzate da parte dello script.
Per ciascuna di esse, ne viene mostrato il tempo necessario per il caricamento ed il file PHP in cui la funzione è stata definita.

Debug PHP con Z-Ray: ottimizzare pagine PHP lente, risolvere problemi negli script

Il pulsante Variables, invece, consente di controllare tutte le variabili utilizzate da parte dello script PHP e di verificarne il rispettivo valore.


Chi fosse interessato a provare Zend Server 7.0 può prelevarlo da questa pagina tenendo presente che Zend offre una licenza gratuita a tutti coloro che in passato hanno utilizzato (od usano ancora) il precedente Zend Server Free (tutte le informazioni sono riportate a questo indirizzo).


Debug PHP con Z-Ray: ottimizzare pagine PHP lente, risolvere problemi negli script - IlSoftware.it