Server  »  Articoli  »  Apache 

Utilizzare PHP 4 e PHP 5 in modalità concorrente con Apache 2

di: Ermanno Ancona     28 Dicembre 2007

Ebbene sì, la tanto annunciata morte di PHP4 è ormai alle porte. La "End of Life" è stata fissata per lo scorso 31 dicembre. Dopo questa data potremo contare solo sulle patch di sicurezza, ma anche queste fino ad agosto 2008 e non oltre. Come succede sovente, al reiterato annuncio della prossima fine, in molti hanno risposto "mo' me lo segno" come Massimo Troisi in "Non ci resta che piangere" e poi l'hanno relegato in un angolo della propria memoria.

A parte la battuta non tutti avranno diligentemente aggiornato il proprio codice anche se PHP5 è stabile da un pezzo e si parla già di PHP6. Le motivazioni possono essere varie e sicuramente buone, ma ora siamo di fronte al problema. Codice non compatibile con PHP5 non ha futuro, quindi sui nostri server dovrà girare tale versione del linguaggio. Ma in tal caso è possibile evitare notti insonni a sistemare il codice più datato e programmare la transizione con maggiore calma? Naturalmente si. Anzi il discorso ha molto del déjà vu. Ricordate il rilascio di PHP5? In quell'occasione comparvero in rete numerosi tutorial che spiegavano come provare la versione 5 mantenendo l'installazione di PHP4 sulla propria macchina. Anche HTML.it contribuì con un articolo in proposito. Basterà invertire i termini del problema scambiando PHP4 con PHP5 e avremo la soluzione in tasca.

Forse sarebbe meglio dire le soluzioni, in quanto la documentazione reperibile presenta diversi approcci risolutivi ciascuno con i propri pro ed i propri contro. In questo e in un prossimo articolo analizzeremo due modi diversi di affrontare il problema.

PHP5 come modulo di Apache e PHP4 come CGI

La soluzione che presenterò di seguito permette di utilizzare PHP5 come modulo di Apache ed eseguire PHP4 come cgi (o fastcgi). Rispetto ad altre similari ha il vantaggio di non richiedere la modifica dell'estensione da .php a .php4 per distinguere quali script eseguire con la versione 4 e quali con la 5. Inoltre non comporta l'utilizzo di porte diverse dall'80. È forse la soluzione più indolore e meno onerosa dal punto di vista delle configurazioni, specie per alcune distribuzioni.

Supponiamo di partire da un'installazione standard di Fedora 7 con Apache 2.2.6 e PHP 5.2.2 installati da pacchetti precompilati ed il linguaggio funzionante come modulo del web server. In tal caso la direttiva presente nel file di configurazione /etc/httpd/conf/httpd.conf:

Include conf.d/*.conf

provvederà ad includere (tra gli altri) il file php.conf contenente l'istruzione necessaria al caricamento del modulo PHP5:

LoadModule php5_module modules/libphp5.so

Mentre altre direttive al suo interno indicano all'interprete PHP5 di gestire i file con estensione .php:

AddHandler php5-script .php
AddType text/html .php  

Abbiamo detto che vogliamo utilizzare PHP4 come cgi: con Fedora 7 non possiamo, purtroppo, contare su un pacchetto php-cgi versione 4, salvo non lo troviate in qualche repository particolare.

Con altre distribuzioni potreste avere maggiore fortuna. Se usate, ad esempio, Ubuntu 7.04 Feisty potete trovare in rete chi ha costruito i pacchetti ad-hoc per questa versione. C'è anche chi ha utilizzato i pacchetti esistenti per la precedente Edgy, senza evidenziare problemi di sorta. Nel nostro caso non ci resta che procedere all'installazione dai sorgenti.

Guide Server

Guida risparmio energetico per server

Dalla determinazione dei consumi al risparmio, dalla...

Guida Subversion

SVN è uno dei sistemi per il versioning più utilizzati al mondo....

Guida Application server

Cosa sono, quali sono e come possono essere utilizzati nella...

Altre guide

Newsletter

Ogni settimana, in due distinte newsletter: notizie a approfondimenti su Apache e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto