Proprio ieri ho aggiornato alla ultimissima Ubuntu, appena uscita. E proprio oggi si è avverato uno dei peggiori incubi del programmatore: rimettere le mani in un’applicazione rimasta inerte per 5 anni, perché all’improvviso si è presentato un bacherozzo bloccante. Ogni tentativo è stato inutile: l’applicazione non è compatibile con PHP5. Ergo, occorreva trovare un sistema (veloce) per far funzionare il PHP4, correggere il baco e poi buttare tutto.
Ecco come ho fatto (nota per gli amici Debianisti: ho più pratica nella compilazione del php/apache che nei vari giochini a colpi di dpkg; abbiate pazienza):
- Primo problema: trovare i sorgenti di PHP4. Il sito ufficiale non li ha più disponibili, per cui occorre trovarseli altrove; io sono andato a prendere il pacchetto di Debian Etch.
- PHP andrà compilato solo come CGI (l’idea è quella di usare lighttpd + fastcgi). Scompatta i sorgenti e poi dai un bel ./configure –with-mysql=/usr –enable-fastcgi. Attenzione che non è sufficiente il solo –with-mysql, perché altrimenti verrà compilato il supporto mysql “vecchio”, che non funzionerebbe con i server 5.x. Probabilmente il configure si lamenterà della mancanza di qualcosa, la qual cosa provvederete ad installare (es: libmysqlclient-dev).
- Apt-get install lighttpd (probabilmente non partirà se avrai attivo Apache, ma non ti preoccupare) e poi:
- Modifica /etc/lighttpd/lighttpd.conf per farlo andare su un’altra porta che non sia l’80 (dove potresti avere Apache). Io ho usato l’81.
- Esegui lighttpd-enable-mod fastcgi
- Modifica /etc/lighttpd/conf-enabled/10-fastcgi.conf e cambia il “bin-path” del php, per farlo puntare a <dirSorgentiPhp4>/sapi/cgi/php
- fai (ri)partire lighttpd /etc/init.d/lighttpd start
A questo punto i file php letti da localhost:81 verranno interpretati dal php4 fastcgi, via lighttpd mentre tutto il resto continuerà a funzionare come prima via Apache e php5 DSO :)
Se vuoi usare un sistema del tipo VirtualHost di Apache con lighttpd, ti copio la mia configurazione da mettere nel tuo /etc/lighttpd/lighttpd.conf
$HTTP["host"] =~ "miodominio\.local(\:[0-9]*)?$" {
server.document-root = "/home/claudioc/Sites/miodominio"
}
La cosa a cui fare attenzione è che anche se la chiave si chiama “host”, in realtà nella regexp occorre fornire il match anche per una eventuale porta (come nel caso di esempio).
RSS








One Comment
Hey!
interessante come guida ma non funziona la compilazione:
configure: warning: –with-mysql=/usr: invalid host type
configure: warning: –enable-fastcgi.: invalid host type
configure: error: can only configure for one host and one target at a time
mi puoi aiutare? anch’io sono alle prese con un applicazione datata,
ciao e grazie maxi