La conoscenza dei PHP Handlers (Gestori PHP) è sconosciuta ai più, ma la conoscenza può portare grandi benefici nella gestione del proprio sito. Non è importante conoscere come funzionano esattamente, ma una conoscenza base permette di avere migliori prestazioni per il proprio sito, ciò comporta risparmio di tempo e di denaro. Sui server dove vengono ospitati i siti in php vengono installati dei software che interpretano tale codice e che generano la pagina web per i visitatori. Tale interprete si basa su delle librerie, che possono essere PHP 4.x o PHP 5.x. Il Gestore PHP (handlers) non è altro che il programma che carica la libreria che verrà usata per interpretare il codice, cioè determina come il PHP deve essere caricato sul server.
Esistono svariati PHP Handlers, quelli che esamineremo in questo articolo sono: CGI, suPHP, FastCGI, DSO. Ogni Handler fornisce le librerie con diversi file e diverse implementazioni. Tali file ed implementazioni hanno un’influenza determinante sulle performance di Apache, perchè determinano come Apache gestisce il PHP. Quindi è molto importante selezionare il Gestore PHP giusto per la propria configurazione. E’ anche possibile selezionare un gestore diverso in base alla versione di PHP, quindi ad esempio associare CGI per PHP 5 mentre DSO per PHP 4.
Da cPanel si può cambiare il gestore eseguendo questa operazione: Principale > configurazione Servizi > Configura PHP, selezionare il Gestore PHP dal menù a scomparsa e poi “Salva Nuova Configurazione”.
Di seguito illustreremo i PHP Hanldlers più famosi:
DSO: E’ uno dei gestori più vecchi, noto anche come mod_php, è considerato uno dei più veloci. Funziona come modulo Apache, questo significa che viene eseguito come utente Apache ‘nobody’. Questo gestore però ha due contro. il primo è che i file, essendo generati dall’utente nobody, non sono accessibili dal web, quindi se un sito ha necessità di caricare file PHP dal web avrà problemi di autorizzazione. Problema molto comune per tutti i siti in WordPress. Un altro problema importante riguarda la sicurezza, infatti se un malintenzionato riuscisse a trovare una falla nello script PHP potrebbe implementare dei file con gli stessi privilegi di nobody e quindi modificare altri file di sistema che hanno gli stessi privilegi. Anche se questo è un problema facilmente evitabile, tenendo aggiornato il software. Ricapitolando DSO è più performante e ha tempi di caricamento minori rispetto agli altri gestori ma ha questi 2 problemi sopra elencati.
CGI: Questo gestore viene gestito come CGI, però è esterno ad Apache, anche se i processi PHP vengono gestiti come utente nobody di Apache. Di solito si usa come ripiego quando DSO non è disponibile. Dalla stessa documentazione cPanel è specificato come un metodo ne veloce ne sicuro, aldilà del fatto che suExec è abilitato o meno.
suPHP: viene gestito come modulo CGI, invece che come modulo Apache. Però a differenza di CGI gli script PHP vengono eseguiti col l’utente che li possiede e non come nessuro. Questo Gestore viene consigliato da cPanel proprio per il motivo sopra indicato. Questo Gestore viene utilizzato sopratutto quando bisogna caricare foto sul proprio sito web, come ad esempio in WordPress, ed i file avranno i privilegi e la proprietà dell’utente. Infatti il caricamento di file o altre funzioni di WordPress non funzionano senza suPHP o FastCGI. Un altro vantaggio è che gli script di proprietà di altri utenti non possono essere eseguiti. Quindi gli script dannosi non andranno ad infettare gli altri account. Svantaggi di questo gestore sono l’alto utilizzo della CPU e la non possibilità di utilizzare un Opcode Cache (come ad esempio Xcache o APC) , infatti andrà installato un plugin a parte per questo. Se il carico sulal CPU dovesse essere troppo alto si consiglia di passare a DSO o FastCGI.
FastCGI: noto anche come mod_fcgid, FastCGI è un’alternativa a CGI ma molto più performante. Dalla sua ha sia la sicurezza che i benefici di suPHP perchè gli script vengono eseguiti dall’utente reale e non da nobody che le prestazioni che si avvicinano a DSO, sopratutto nell’uso della CPU. Inoltre supporta anche Opcode Cacher come eAccelerator e APC. L’unico svantaggio di FastCGI è che usa più memoria degli altri gestori PHP.
Tabella Comparativa:
DOS |
CGI |
suPHP |
FastCGI |
|
Utilizzo CPU |
X |
X |
||
Utilizzo Memoria |
X |
X |
||
Utilizzo PHP come utente e non come nobody |
X |
X |
X |
|
Sicurezza |
X |
X |
Note per Utilizzatori di WordPress:
Tutte le funzionalità che richiedono l’upload di file sul server necessitano di gestori PHP come suPHP o FastCGI. Se il carico sulla CPU è troppo elevato si consiglia di usare DSO o FastCGI come Gestori PHP
Un commento