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. 
Un handler PHP è il modulo software che permette alle librerie di Apache di interpretare il codice PHP di un sito web, influendo così sulle prestazioni, sui permessi e sul livello di sicurezza (un handler stabilisce cosa “si può fare“ e cosa no) e sulla generazione delle pagine (dinamiche).

Gli handler PHP fanno in modo di stabilire come il linguaggio debba essere caricato all'interno del server su cui sta girando: numerosi sono gli handler che si possono utilizzare,  come ad esempio, CGI, DSO, suPHP e FastCGI. Ognuno di essi realizza il comportamento delle librerie, attraverso altrettante implementazioni e file distinti.

È facile intuire 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 ogni caso specifico, tenendo conto del fatto che non esiste un handler migliore degli altri in assoluto.

La modifica del handler PHP del vostro cPanel avviene in modo relativamente semplice. Innanzitutto, l'utente deve effettuare il login nel proprio account WHM ed andare su: Main >> Service Configuration >> Configure PHP and SuExec.
Potrà, a questo punto, selezionare semplicemente l'
handler più adatto alle proprie esigenze dal menù che troverà sulla pagina. Dovrà, infine, cliccare su “Save New Configuration” per salvare le modifiche.
Qualora l'handler desiderato non fosse in lista, l'utente dovrà ricorrere ad “Easy Apache” per compilarlo e renderlo disponibile.

Come detto in precedenza esistono diversi tipi di handler PHP. Di seguito, una breve lista dei più utilizzati.

DSO (Dynamic Shared Object)
E' noto solitamente come mod_php.
 Si tratta di uno degli handler più vecchi ma, al tempo stesso, più efficienti. Ha il compito di far funzionare PHP come modulo del server Apache e ciò implica che le istruzioni PHP vengano eseguite dall'utente Apache “nobody”.

I principali inconvenienti di DSO sono due. Prima di tutto, i file PHP saranno considerati di proprietà dell'utente, quindi, qualora il sito necessiti di funzionalità di upload, esse non potranno essere garantite (sarà necessario impostare i permessi con CHMOD). Ad 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 è legato alla sicurezza del sistema. Poiché i file creati saranno di proprietà dell'utente “nobody” di Apache, qualora un hacker trovasse una falla negli script PHP,  potrebbe potenzialmente creare un proprio file con privilegi elevati, disponendo così della possibilità di manipolare i contenuti del filesystem dall'esterno.
Questa problematica rende DSO inadatto per le configurazioni multi-utente, come gli account reseller o anche gli hosting condivisi. Al contrario, in caso di singolo utente attivo sulla macchina – come, ad esempio, nel caso degli hosting dedicati – si potrà godere dei benefici di efficienza e velocità del modulo.

Un modo semplice per evitare rischi è quello di mantenere sempre il software aggiornato, seguendo gli aggiornamenti dei CMS oppure pianificandoli assieme al webmaster o sviluppatore del sito.

L'efficenza di DSO è dovuta essenzialmente al suo minimale utilizzo della CPU, il che lo rende piuttosto diffuso su buona parte dei server in circolazione come scelta di default.

CGI (Common Gateway Interface)
E' uno degli handler più noti e diffusi e ha il compito di far funzionare PHP come modulo CGI invece che Apache. Tuttavia, anch'esso esegue i processi PHP come utente “nobody” di Apache, ma tenendo 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, nonostante sia possibile far intervenire il suddetto componente di sistema aggiuntivo.


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, infatti,  funzionano 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 in merito all'upload dei file sul sito – update automatici, installazione di plugin o temi di Wordpress – che potranno essere eseguiti in condizioni di massima sicurezza.
E' 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 che qualsiasi script venga eseguito esclusivamente dall'utente proprietario e che i file che possiedono permessi di scrittura estesi non possano, in generale, essere anche eseguibili. In altri termini, qualora un account di hosting risultasse compromesso, non potrebbe comunque “infettare” altri account.

L'unico reale svantaggio derivante dall'utilizzo di suPHP risiede nel fatto che impiega notevolmente la CPU del server, causando alcuni rallentamenti del sistema. Inoltre, non è consentito utilizzare Opcode Cache (come Xcache oppure APC), imponendo all'amministratore la necessità di installare un plugin ulteriore. 


FastCGI (noto anche come mod_fcgid o FCGI)
E' una modifica del modulo CGI che favorisce le prestazioni del server e l'aspetto legato alla sicurezza. Unisce 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 che 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, considerata la presenza di un'unica sessione persistente che rimane attiva in background. Il tutto permette, inoltre, di utilizzare plugin come Opcode per la cache.

E' necessario prendere seriamente in considerazione l'opportunità di utilizzare FastCGI qualora si desideri sfruttare il meglio di suPHP e fare affidamento su un utilizzo ottimizzato della memoria RAM.

Di seguito, una breve tabella comparativa dei diversi handler descritti in precedenza.

 

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

   

 

 

Hai trovato questa risposta utile?

share Ricerche correlate