Handler PHP: come funzionano, a cosa servono e quali è preferibile istallare Handler PHP: come funzionano, a cosa servono e quali è preferibile istallare

Gli handler PHP sono probabilmente uno degli argomenti più importanti da conoscere per chiunque sviluppi un sito web: certamente di primo acchito sembra qualcosa di molto complicato, eppure non è necessario conoscere tutti i dettagli e, soprattutto, si possono ricavare dati molto utili con poche informazioni a portata di mano.

 

Cosa sono gli handler PHP?

Il funzionamento di PHP si basa su un principio di interpretazione del codice che viene dato in pasto al sistema: il linguaggio codifica le varie istruzioni, e si occupa di eseguire azioni corrispondenti (come generare codice HTML dinamico) in base ad un “motore interno” che può essere, ad esempio, nella versione 4.x oppure 5.x. Gli handler PHP fanno in modo di stabilire come il linguaggio debba essere caricato all'interno del server su cui sta girando: numerosi sono quindi gli handler che si possono utilizzare come, per citarne alcuni, CGI, DSO, suPHP i FastCGI. Ognuno di essi, in pratica, realizza il comportamento delle librerie attraverso altrettante implementazioni e file distinti. È facile intuire, a questo punto, come gli handler possano influenzare sensibilmente il carico di lavoro e le prestazioni del server, per cui la scelta di questi ultimi dovrebbe avvenire in maniera molto accorta. Diventa indispensabile, pertanto, capire quale di essi funzioni meglio per il vostro caso specifico, visto che ognuno desidera ottimizzare le prestazioni del proprio server: tenendo conto del fatto che non esiste un handler migliore degli altri in assoluto, tutto dipenderà da quello che ci aspettiamo dal server per il nostro caso specifico.

 

Come cambiare un handler

La modifica dell'handler PHP del vostro cPanel avviene in modo relativamente semplice: anzitutto dovrete fare login nel vostro account WHM ed andiamo su: Main >> Service Configuration >> Configure PHP and SuExec. Potete a questo punto selezionare semplicemente il vostro handler preferito dal menù a cascata che troverete sulla pagina: alla fine ricordatevi di cliccare su “Save New Configuration” per salvare le modifiche. Se l'handler che desiderate non fosse in lista, dovrete ricorrere ad “Easy Apache” per compilarlo e renderlo disponibile.

 

Lista dei principali handler PHP

DSO (mod_php)

DSO (Dynamic Shared Object) è noto solitamente come mod_php: si tratta di uno degli handler più vecchi ma anche, al tempo stesso, più efficienti. Esso è incaricato di far funzionare PHP come modulo del server Apache, e questo implica che le istruzioni PHP saranno eseguite dall'utente Apache “nobody”.

I principali inconvenienti di DSO sono due: prima di tutto i file PHP saranno considerati di proprietà dell'utente suddetto, quindi se il vostro sito necessita di funzionalità di upload esse non potranno essere garantite (sarà necessario impostare i permessi con CHMOD). Per fare un esempio, le funzionalità di caricamento di immagini e documenti di Wordpress, così come gli update automatici, non funzioneranno se si adotta l'handler DSO.

Il secondo inconveniente di questo modulo è legato alla sicurezza del sistema: poiché i file creati saranno di proprietà dell'utente “nobody” di Apache, se un hacker trovasse una falla nei vostri script PHP potrebbe potenzialmente creare un proprio file con privilegi elevati, disponendo così della pericolosa possibilità di manipolare i contenuti del filesystem dall'esterno. Questa problematica in particolare rende DSO inadatto per le configurazioni multi-utente, come gli account reseller o anche gli hosting condivisi; se invece esiste solo un singolo utente attivo sulla macchina – come avviene ad es. sugli hosting dedicati – si potrà godere dei benefici di efficienza e velocità del modulo con relativa tranquillità.

Un modo semplice per evitare rischi è quello di mantenere sempre il software aggiornato, seguendo gli aggiornamenti dei CMS oppure, se è il caso, pianificandoli assieme al webmaster o sviluppatore del vostro sito. Ovviamente se vi trovate in una situazione in cui state offrendo spazio web a più siti è impensabile chiedere di fare una cosa del genere, per cui sarà necessario optare per altre soluzioni.

L'efficenza di DSO, per la cronaca, è dovuta essenzialmente al suo minimale utilizzo della CPU, il che lo rende piuttosto diffuso su buona parte dei server in circolazione – ammesso che vi risienda un singolo webmaster, anche con più siti eventualmente - come scelta di default.

CGI

CGI (Common Gateway Interface) è uno degli handler più noti e diffusi, e farà funzionare PHP come modulo CGI invece che Apache. Tuttavia anch'esso esegue i processi PHP come utente “nobody” di Apache, ma stavolta sarà possibile tenere sotto controllo le utenze che effettuano le varie richieste mediante il modulo suEXEC. Stando alla documentazione di cPanel, questo modulo non è né efficiente né sicuro, e questo nonostante sia possibile far intervenire il suddetto componente di sistema aggiuntivo: non dovrebbe quindi, in generale, essere preso in considerazione.

suPHP

suPHP (Single user PHP) fa funzionare PHP come modulo CGI, ma differisce da quest'ultimo per un aspetto fondamentale: gli script che vengono eseguiti dal web funzioneranno rigorosamente per lo stesso utente che ne detiene i diritti. suPHP è per questa ragione il modulo ufficialmente suggerito da cPanel poiché, nella pratica, permette di monitorare costantemente quale utente stia eseguendo ogni operazione, piuttosto che relegarla all'utente generico “nobody”.

suPHP permette inoltre di superare le limitazioni viste in precedenza per quanto riguarda l'upload dei file sul vostro sito – update automatici, installazione di plugin o temi di Wordpress – che saranno quindi in condizione di poter essere eseguiti in condizioni di massima sicurezza. In generale è bene tenere presente, comunque, che le funzionalità di upload non potranno funzionare su un server senza suPHP oppure FastCGI.

L'handler suPHP offre inoltre il vantaggio, in termini di sicurezza, che qualsiasi script può essere eseguito esclusivamente dall'utente proprietario senza eccezioni: inoltre, i file che possiedono permessi di scrittura estesi non potranno in generale essere anche eseguibili. In altri termini, quindi, se un account di hosting risultasse compromesso, non potrà comunque “infettare” altri account del vicinato.

L'unico reale svantaggio derivante dall'utilizzo di suPHP risiede nel fatto che impiega notevolmente la CPU del server, e questo può risultare in alcuni rallentamenti del sistema: in questi casi si può valutare la possibilità di passare a FastCGI oppure DSO. Inoltre non è consentito utilizzare Opcode Cache (come Xcache oppure APC), imponendo all'amministratore la necessità di installare un plugin ulteriore. Si noti infine che il passaggio a suPHP e FastCGI necessita l'aggiornamento dei permessi dei file con CHMOD, come illustrato all'interno di questo articolo di approfondimento.

FastCGI

FastCGI (noto anche come mod_fcgid or FCGI) è una modifica del modulo CGI che favorisce le prestazioni del server e l'aspetto legato alla sicurezza: unisce quindi i vantaggi di suPHP e permette l'esecuzione di script soltanto agli utenti proprietari. La differenza principale di FastCGI rispetto agli altri handler è legata ad un ottimizzato utilizzo della CPU, oltre a prestazioni paragonabili a quelle di DSO. Questo modulo è compatibile inoltre con eAccelerator o APC, che possono incrementare notevolmente la velocità di visualizzazione delle pagine web. Lo svantaggio di questo handler si riscontra, tuttavia, nel suo utilizzo notevole di memoria RAM: questo avviene poiché i processi PHP non sono gestiti dinamicamente ad ogni chiamata, bensì esiste un'unica sessione persistente che rimane attiva in background. Il tutto permette, inoltre, di utilizzare plugin come opcode per la cache.

Potete quindi prendere seriamente in considerazione l'opportunità di utilizzare FastCGI se volete sfruttare il meglio di suPHP, e fare affidamento su un migliorato utilizzo della memoria RAM.

Tabella comparativa

 

DSO

CGI

SuPHP

FastCGI

Basso utilizzo di CPU

   

Basso consumo di RAM

 

Utilizza PHP mediante singoli utenti proprietari e non come Apache

 


solo con suEXEC

Sicurezza

   

Note per gli utenti Wordpress

Se siete webmaster di Wordpress eccovi alcune note finali utili:

·le funzionalità di upload dei file sul server (compresi aggiornamenti, caricamenti di immagini ed installazione di plugin e temi) non funzioneranno se PHP viene caricato come modulo CGI, ovvero funzioneranno soltanto con suPHP e FastCGI. Queste configurazioni vi garantiranno la corretta gestione dei moduli in questione.

·Wordpress richiede un grande utilizzo di memoria CPU, per cui potrebbe risultare conveniente utilizzare plugin di cache come W3Cache, specialmente se utilizzate suPHP. Se notate eccessivi rallentamenti potete, con tutte le riserve del caso espresse in precedenza, passare ad un handler come DSO o FastCGI.

 

Hai trovato questa risposta utile?

share Ricerche correlate