mercoledì, ottobre 11, 2006

vi ed il fileformat

vi (vim) e' praticamente sempre a disposizione su ogni server linux...
tra le altre cose, mi piace utilizzarlo per cambiare il formato dei file, da dos a unix (e viceversa):


(esc) :set fileformat=unix

(esc) :set fileformat=dos

lunedì, ottobre 09, 2006

Resin 3: compilare mod_caucho

E' verissimo che Resin funziona alla grande come http server, ma in un tipico ambiente di produzione la configurazione ideale risulta sempre essere Apache + Resin, dove il primo si preoccupa di servire il contenuto statico e di 'proxare' le chiamate che verranno risolte dinamicamente da Resin, mentre il secondo funge da servlet engine / application server.
Il componente che permette suddetta comunicazione tra Apache e Resin e' mod_caucho; e' necessario ricompilare i sorgenti distribuiti con Resin, ed e' consigliato ricompilare cercando di sfruttare al meglio la configurazione hardware disponibile per l'esecuzione del software.
Personalmente ho a disposizione una macchina Linux (Suse 9.0 enterprise edition) con 4 CPU Xeon MP 3GHZ, e, seguendo i consigli del gentoo-wiki e dell'help di configure (configure --help) ho deciso di compilare i sorgenti in questo modo:
./configure --prefix=resin_dir --enable-linux-smp --with-apache=apache_dir --with-java-home=java_dir CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
make
make install

resin_dir e' la directory nella quale saranno scritti i file necessari per l'esecuzione di Resin: sara' quindi la directory contenente l'intero servlet engine (escluse ovviamente le applicazioni che ci gireranno sopra)
apache_dir e' la directory contenente il web server apache: mod_caucho sara' copiato nella directory apache_dir/modules (si chiamera' mod_caucho.so)
java_dir e' la directory contenente la jdk (coincide con la variabile d'ambiente JAVA_HOME)

Suggerisco di cancellare la directory di lavoro di resin (quella contenente i sorgenti per la compilazione di mod_caucho) ad ogni ricompilazione... ho impiegato un po' di tempo per capire che lo script non copiava mod_caucho nella directory 'modules' di apache proprio perche' 'aveva memoria' delle compilazioni precedenti :)