[Gulli] mediaWiki e mirror

Carlo ROATTA roatta@linux.it
Gio 4 Maggio 2006 00:18:46 CEST


egregi Gullini,

dopo l'appetitosa conferenza del Lenzi, circa l'uso di sistemi wiki come
strumento di condivisione, mi sono messo a giocare anch'io con
MediaWiki, impostandoci sopra un server di appunti che, aperto in rete,
viene usato da diverse persone per costruire assieme la documentazione
di un corso.

Dopo aver arricchito il server di dati, mi sono scontrato con il
problema di creare una copia del materiale da distribuire via CD a tutti
gli interessanti.
In altre parole, devo creare un "mirror" del server wiki, ovvero
ricostruire in un albero html statico quanto, sul server, viene
presentato in pagine dinamiche, attingendo ad un database. In questo
modo, si riuscirebbe a portare l'albero html su un CD di facile
trasporto e consultazione, anche su macchine non connesse in rete al
server wiki.

Trasferire un coacervo di pagine dinamiche di un server wiki in un
albero html giocoforza statico non è banale; occorre "tagliar fuori",
tra l'altro, tutti quei file accessori completamente inutili, per la
copia su CD (quali, ad esempio, le pagine storiche, sorpassate da nuove
edizioni aggiornate).

Su questo problema di travaso, ho cominciato ad indagare tra tutti i
gurugulli (i Guru del Gulli), ricevendo più indizi che soluzioni pronte
("è Linux, bellezza", spiegherebbe Humphrey Bogart).
Ora che, grazie a tali aiuti, ho costruito una soluzione accettabile
all'80%, la condivido con chi dovesse imbattersi nello stesso problema
("anche questo è Linux, bellezza", ribatterebbe Roatta).

Ecco la semisoluzione, usando il comando wget (vedi: "man wget" per
maggiori informazioni)

> wget --user=<nome_utente> --password=<password>-crkE -nH --cut-dir=2
> http://localhost/wiki/index.php/Corso_logistica
> -R*\=*,*Wiki\:*,*Special\:*  --restrict-file-names=windows

che, in dettaglio, opzione per opzione, significa:

1. --user... --password: sono le credenziali valide per accedere al
server wiki, dalla rete

2. -crkE sono una serie di opzioni che realizzano:
    -c: riprendono il mirroring interrotto, senza perdere i precedenti
	download (c=continuosly)
    -r: attua la ricorsione (r=recursevely)
    -k: aggiusta i link, riportandoli a pagine locali (k=linK)
    -E: pone l'estensione html ai file wiki che ne sono privi
	(E=Extension)

3. -nH: evita di costruire il mirror sulla directory che prende nome dal
	sito (localhost; nH=no-Home)

4. --cut-dir=2: trancia dal mirror le prime due directory dell'albero
	(wiki/index.php)

5. <nome_file_di_inizio>

6. -R... : esclude certi file accessori di wiki, che non interessa
	riportare nel mirror (*=*, *Wiki:*, etc)

7. --restrict-file-names=windows: riporta i nomi dei file del mirror con
	caratteri leggibili da Windows (convertendo, ad esempio, il
	carattere ":" nella stringa "%3A")

Morale della favola:
ora riesco a ricavarmi il mirror, ripulito dei file accessori di wiki
in appena 4294 KB. Senza le opzioni sopra descritte, per escludere i
file noiosi, il mirror esploderebbe verso i 169415 KB (circa 40 volte
più grosso!)

Buon divertimento,

Carlo


Maggiori informazioni sulla lista Gulli