Poliziotto: E nella valigetta?Ecco, a meno che non vi interessi fare lo stesso lavoro del mitico Drugo (The Dude), è una buona idea disporre di un know-how di valore. Questo è un post ad alto valore aggiunto, e lo è semplicemente considerando la legge della domanda e dell'offerta: tratteremo un argomento di cui non è disponibile una grande base di conoscenza, quindi è un post di valore.
Drugo: Oh, beh, documenti, solo documenti. Già, solo i miei documenti. Documenti di lavoro.
Poliziotto: Che lavoro fa?
Drugo: Sono disoccupato.
...vorrei scrivere un modulo, ma sono un po' stanco... |
E veniamo a lighttpd: è un Web Server diffuso (ma molto meno di Apache) e con caratteristiche tecniche di prima classe: ha prestazioni paragonabili ad Apache ma è enormemente più leggero: poco carico di CPU, poca memoria, ecc. Praticamente è un must per sistemi embedded o, più in generale, per sistemi dove sono necessarie alte prestazioni usando poche risorse. Sfortunatamente lighttpd non ha dietro una grande organizzazione di sviluppo, e, proporzionalmente alla minore diffusione, non ha neanche un grande esercito di professionisti e appassionati che ci lavorano. Grazie a ciò NON si trova in rete una grande quantità di documentazione e guide, sia ufficiali che non. Scrivere un modulo lighttpd non è facilissimo, e, con il poco supporto disponibile, è una missione complicata.
Nello specifico: lighttpd è un gran prodotto scritto e mantenuto da una ristretta comunità di eccellenti programmatori, ma, non avendo dietro una grande organizzazione, si perde un po' nei dettagli: con più documentazione e guide ufficiali si aumenterebbe la diffusione, il che aumenterebbe anche la comunità di utilizzatori/sviluppatori (e quindi la documentazione non ufficiale), e, alla fin fine, aumenterebbe il successo del prodotto. Ma questo non succede e quindi siamo davanti a un caso classico di sindrome del cane che si morde la coda.
lighttpd è in continua evoluzione, con prestazioni e affidabilità in crescendo, ma, per la carenza nei dettagli citata prima, può anche succedere che, tra una release e l'altra, ci si dimentichi della retro-compatibilità e si introducano delle modifiche alla API di programmazione che invalidano molti dei moduli (faticosamente) scritti dagli sviluppatori esterni (è successo anche a me con un modulo che ho scritto per la rel.1.4.33 e che con la rel.1.4.36 ha smesso di funzionare!).
Va bene, bando alle ciance: scriveremo un modulo elementare per lighttpd, che sarà una buona base per la scrittura di moduli più complessi (su cui vi fornirò alcune dritte in post futuri). La prima attività è, ovviamente, installare lighttpd sul PC (e, se anteriormente installato, rimuovere prima Apache). Cercate, con il nostro amico Google, una delle molte guide (ad esempio questa) per trasformare un PC in un server LLMP (o WLMP) (non vi descrivo io la procedura per non dilungarmi troppo, ma, vi garantisco, è abbastanza semplice). Ovviamente a fine procedura verificate se il Web Server funziona correttamente (di solito le guide vi dicono come farlo).
Poi bisogna installare il necessario per sviluppare il nostro modulo. Le istruzioni che seguono sono (ovviamente) per Linux. Per altri sistemi della famiglia UNIX (BSD, OS X, ecc.) il procedimento si adatta intuitivamente, mentre, per quell'altro sistema che non voglio neanche nominare (comincia per W...), mi dispiace ma vi dovrete arrangiare da soli (se lo conosci lo eviti, ed io, vi assicuro, lo conosco bene).
Allora: scaricatevi dal sito ufficiale di lighttpd il tar di sviluppo corrispondente alla versione che avete appena installato sul sistema (sono disponibili anche i tar di versioni precedenti all'ultima). Questo tar serve per creare sul sistema il giusto ambiente di sviluppo e installazione di nuovi moduli. Decomprimete (dove volete) il tar, entrate nella directory creata e provate a compilare e installare la release (lo so, la stessa versione l'avete appena installata sul sistema, ma questo passo serve a verificare se il sistema di sviluppo funziona correttamente). Supponendo di usare la versione 1.4.33 scriveremo:
tar zxvf lighttpd-1.4.33.tar.gz cd lighttpd-1.4.33 ./autogen.sh ./configure make sudo make install sudo /etc/init.d/lighttpd restartVerificate se il Web Server funziona ancora (nella stessa maniera usata per la prima installazione) e, se tutto è OK, siamo pronti per scrivere/compilare/installare il nostro nuovo modulo. Ma questo lo vedremo nella prossima puntata...
Ciao e al prossimo post!
Nessun commento:
Posta un commento