10934 Letture

Velocizzare l'esecuzione di script PHP con Zend Server CE

Quando si sviluppa in PHP si ha la necessità di disporre di un ambiente di testing completo, facilmente configurabile ed affidabile. Sia che le proprie competenze siano piuttosto evolute, sia che ci si voglia limitare all'installazione di uno dei tanti prodotti opensource realizzati in PHP, l'aver a disposizione un web server locale in grado di eseguire in modo efficiente tutti gli script che compongo le applicazioni sulle quali si desidera operare è un'esigenza a dir poco fondamentale.

Zend Server è un "web application server" che consente di eseguire e gestire applicazioni web realizzate in PHP offrendo un elevato livello di affidabilità, performance e sicurezza. Il prodotto è compatibile con Windows, Linux ed IBM i. Per quanto riguarda la piattaforma Microsoft, Zend Server può essere installato su Windows XP (SP2 o SP3), Windows Vista (fatta eccezione per la "Starter Edition"), Windows Server 2003, Windows Server 2008 e Windows 7.

Per quanto concerne Linux, Zend Server viene distribuito nei pacchetti RPM per Red Hat Enterprise Linux 5.x, CentOS 5.x, OEL 5.x e Fedora 11 (o versioni successive), Suse Linux Enterprise Server 10.x 1 e 11.x, OpenSUSE 11.x; per mezzo di pacchetti DEB nel caso di Debian GNU/Linux 5.x, Ubuntu Linux 8.04 (e versioni seguenti); in formato "tarball".


Zend è ormai divenuta sinonimo di PHP. Zeev Suraski e Andi Gutmans, fondatori dell'israeliana Zend Technologies, si sono interessati a PHP sin dal 1997 quando crearono una nuova implentazione integrata poi nello "Zend Engine", motore opensource che si occupa di compilare ed eseguire script PHP. Zend Server 5.0 è un prodotto che raccoglie gli sforzi dei tecnici della società per mettere a disposizione un sistema in grado di allestire una configurazione server sicura sia per l'utilizzo in ambienti di testing che in produzione intendendo, in questo caso, l'impiego su macchine che debbono gestire traffici dati elevati ed elaborare pagine PHP in modo performante ma allo stesso tempo affidabile.

La proposta di Zend è particolarmente apprezzabile perché consente di sgravare l'amministratore dalla necessità di installare e riconfigurare manualmente tutti i componenti software utilizzati nella propria realtà aziendale per il corretto funzionamento di applicazioni sviluppate in PHP. Zend Server, infatti, si propone come un prodotto già configurato per ciò che riguarda le impostazioni di base ma liberamente personalizzabile secondo le esigenze dell'utente. Il "web application server" di Zend mette a disposizione una comoda interfaccia, accessibile mediante il browser, che raccoglie tutte le informazioni relative alla configurazione dei vari componenti.
Zend Server supporta l'ultima versione di PHP e di decine di estensioni: quando uno o più applicazioni web necessitano di utilizzare una specifica estensione, non ricompresa nel "core" dell'interprete, è possibile abilitare molto comodamente da un'interfaccia web anziché metter mano al file php.ini (comunque modificabile anche in modalità manuale).


Grandi vantaggi si hanno anche in ambiente Windows dove Zend Server permette di eseguire qualsiasi script PHP senza tentennamenti. In passato, far convivere IIS (Internet Information Services), il web server di Microsoft, e PHP era un'impresa non semplice. Per guadagnare in termini di performance si perdeva inesorabilmente in stabilità, o viceversa.
Da tempo lo scenario è profondamente cambiato con Zend che ha avviato una stretta collaborazione con Microsoft per migliorare le abilità di IIS nella gestione di file PHP. I risultati più tangibili sono nelle ultime versioni di IIS: la 7.0, integrata in Windows Server 2008 ed installabile in Windows Vista (Home Premium, Business, Enterprise ed Ultimate) e la 7.5, integrata in Windows Server 2008 R2 ed installabile su Windows 7 (ved. queste pagine).
Microsoft stessa ha lanciato la sua "Web Platform", prodotto simile a Zend Server, che abbiamo presentato in queste pagine e che è di recente giunta alla terza versione (il download è effettuabile da qui).

Zend Server viene distribuito in due "vesti": la prima è a pagamento mentre la seconda è completamente gratuita (Zend Server Community Edition).
In questa pagina sono chiarite, in forma tabellare, le principali differenze tra Zend Server e Zend Server Community Edition.
Rispetto alla "Community Edition" (CE), la versione a pagamento di Zend Server offre un supporto 24 ore su 24 da parte dei tecnici di Zend, consente l'aggiornamento con un clic di tutti i componenti del pacchetto ed è particolarmente indicata per le applicazioni "business-critical". La release più completa, inoltre, mette a disposizione dello sviluppatore così come dell'amministratore, una serie di strumenti per il monitoraggio delle applicazioni PHP, l'invio di messaggi d'allerta in caso di problemi ed alcuni moduli diagnostici.
La funzionalità "code tracing", poi, offre gli strumenti per risalire alla causa di eventuali problematiche durante l'esecuzione di script PHP. Individuare il motivo di un comportamento anomalo di un'applicazione PHP può essere particolarmente difficile soprattutto quando ci si trova ad operare in un ambiente di produzione e quando il codice è complesso. Il meccanismo di "code tracing" integrato in Zend Server può essere considerato ad una sorta di "scatola nera" che offre informazioni circa bug delle applicazioni e "colli di bottiglia" che ne rallentano l'esecuzione.
Il pacchetto più completo di Zend Server, rispetto alla versione CE, mette nelle mani dell'utente anche "job queue", un meccanismo che si prefigge come obiettivo quello di sgravare il peso sul server web determinato da script PHP che tardano molto ad essere eseguiti. La generazione di resoconti particolarmente lunghi, la pulizia dei database effettuata da una pagina web, il processo di vaste moli di dati, l'elaborazione di feed RSS provenienti da server "lenti" sono esempi di operazioni che possono essere effettuate in modalità "asincrona".
Tutte queste funzionalità, unite al meccanismo di "page caching" consentono di ridurre drasticamente il carico di lavoro sul server ottenendo enormi benefici in termini prestazionali (leggasi, pagine HTML – frutto dell'elaborazione effettuata lato server – che vengono trasmesse ai client connessi in maniera molto rapida).
Nel prossimo articolo presenteremo le funzionalità aggiuntive offerte da Zend Server. Per il momento, concentriamoci sulla versione CE.


Velocizzare l'esecuzione di script PHP con Zend Server CE - IlSoftware.it