Author Archives: sdonk
Installare Lighttpd con supporto SSL e PHP5 su Ubuntu 10.04 Lucid Lynx
Questo articolo è un aggiornamento al mio vecchio articolo Installare Lighttpd con MySQL e PHP5 su Debian Lenny.
In questo how-to tratteremo dell’installazione su Ubuntu 10.04 e dell’attivazione del supporto SSL con redirect automatico da HTTP a HTTPS.
Installazione di Lighttpd e PHP5
Per installare il server e abilitare il supporto a PHP5 bastano solo 3 comandi:
sudo apt-get install lighttpd php5-cgi sudo lighty-enable-mod fastcgi sudo lighty-enable-mod fastcgi-php sudo /etc/init.d/lighttpd restart
Apriamo la porta 80 su iptables (perché lo state usando, vero?!?):
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Abilitare HTTPS
Creiamo il certificato, con scadenza 365 giorni, nella cartella /etc/lighttpd
cd /etc/lighttpd sudo openssl req -new -x509 -keyout server.pem -out lighttpd.pem -days 365 -nodes
Rispondiamo a tutte le domande e poi cambiamo i permessi del certificato.
sudo chmod 400 server.pem
Adesso modifichiamo il file di configurazione /etc/lighttpd/lighttpd.conf
sudo vim /etc/lighttpd/lighttpd.conf
Aggiungendo queste due righe:
ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/server.pem"
Riavviamo Lighttpd:
sudo /etc/init.d/lighttpd restart
Ed infine istruiamo iptables a lasciar passare il traffico sulla relativa porta:
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Attivare il redirect automatico da HTTP a HTTPS
Per redirezionare automaticamente tutto il traffico da HTTP (porta 80) a HTTPS (porta 443) è sufficiente aggiungere queste righe al file di configurazione di Lighttpd
$SERVER["socket"] == ":80" {
$HTTP["host"] =~ "(.*)" {
url.redirect = ( "^/(.*)" => "https://%1/$1" )
}
}
e decommentare il modulo mod_redirect, eliminando il simbolo cancelletto, dalla lista server.modules.
Riavviamo Lighttpd:
sudo /etc/init.d/lighttpd restart
Montare una partizione in automatico all’avvio usando fstab
Il sistema operativo GNU/Linux gestisce le informazioni sulle partizioni da montare automaticamente all’avvio o usando il comando:
sudo mount -a
nel file di configurazione /etc/fstab
fstab è un semplice file di testo, suddiviso in colonne, in cui ci sono su ogni rigo le informazioni relative ad una partizione o un disco:
#nome device punto mount filesystem opzioni dump-freq pass-num /dev/hda6 swap swap defaults 0 0
Le colonne hanno i seguenti significati:
- nome device è il nome della partizione o del disco da montare (Ubuntu le identifica anche con l’UUID)
- punto di mount è il punto del filesystem in cui la partizione deve essere montata
- filesystem è il tipo di filesystem con cui è formattata la partizione (per windows FAT32 o NTFS)
- opzioni rappresenta un insieme di opzioni tra cui quella che inidica al sistema di montare la partizione automaticamente all’avvio
- dump-freq attiva il backup usando il comando
dump(obsoleta) - pass-freq attiva e modifica l’ordine di controllo delle partizioni usando
fsck. La partizione root deve avere valore 1, perché deve essere controllata per prima, le altre valore 2 oppure valore 0 per disattivare il controllo.
L’opzione per il mount automatico è auto, ma si può usare anche l’opzione defaults che comprende altre opzioni (tra cui partizione in sola lettura) oltre auto.
Modificare fstab da terminale
- Identifichiamo l’UUID della partizione contenente Windows (negli esempi userò /dev/sda1):
blkid /dev/sda1
che restituisce
/dev/sda1: UUID="041E62501E623AB6" TYPE="ntfs"
- Creiamo la cartella in cui verrà montata la partizione:
sudo mkdir /media/windows
- Apriamo fstab con gedit:
sudo gedit /etc/fstab
- Inseriamo questa riga alla fine del file:
UUID=041E62501E623AB6 /media/windows ntfs defaults 0 0
Salviamo il file e al prossimo riavvio avremo la partizione montata automaticamente, per montarla immediatamente basta digitare in un terminale:
sudo mount -a
Modificare fstab in maniera grafica
- Installiamo Pysdm dal gestore pacchetti o digitando in un terminale:
sudo apt-get install pysdm
- Apriamo Pysdm con permessi di amministratore usando:
sudo pysdm
- Clicchiamo sulla freccia accanto a SDA per vedere le partizioni e selezioniamo quella che vogliamo mettere in fstab (nel nostro caso SDA1).
- A questo punto ci chiederà se vogliamo configurare la partizione e premiamo OK e la partizione sarà configurata automaticamente.
- Clicchiamo su Assistant per modificare le opzioni (sola lettura, UTF-8 ecc) e poi su Applica
Sistemare il bug di Guake ‘TERM environment variable not set’
La nuova versione di Ubuntu presenta un fastidioso bug in Guake che non ne permette il corretto funzionamento, sopratutto con alcuni comandi.
In attesa del bug fixing è possibile ovviare impostando manualmente la variabile TERM a XTERM.
Apriamo il file di configurazione della bash:
vim .bashrc
Aggiungiamo alla fine del file le seguenti righe:
TERM=xterm export TERM
Ricarichiamo le impostazioni personalizzate della bash
Riavviamo Guake finalmente funzionante
Backup del Master Boot Record
Aggiornato dopo la segnalazione di Trottolino Voodoo
Il MBR consiste nei primi 512 byte di un hard disk contenenti un piccolo programma con le informazioni relative alle partizioni, (solitamente) il boot loader e si occupa di avviare il sistema operativo.
In caso di corruzione del MBR il sistema operativo non sarà più avviabile.
Per questo è bene tenere una copia del MBR nella home, in modo da poterlo ripristinare con una distro live, per farlo utilizziamo dd.
sudo dd if=/dev/sda of=~/mbr.txt count=1 bs=446
Nel caso il vostro hd sia IDE dovrete usare /dev/hda al posto di /dev/sda.
L’opzione count istruisce dd per copiare solo un blocco e l’opzione bs definisce la dimensione, in byte, del blocco da copiare (la dimensione è di 446 e non 512 perché dal 448 al byte 512 solitamente ci sta la tabella delle partizioni primarie che non va copiata).
Sanitizzare un hard disk
Quando cancelliamo un file, questo non viene effettivamente rimosso dall’hd ma il sistema operativo sa di poter utilizzare successivamente quello spazio per salvare altri file.
In questo modo è possibile recuperare i file cancellati, anche da filesystem corrotti, usando opportuni strumenti.
Impostando quindi tutti i bit dell’hd a 0 non sarà possibile recuperare in alcun modo i file cancellati.
sudo dd if=/dev/zero of=/dev/sd(X)
Salvare il contenuto di una finestra in un file immagine
Per fare lo screenshot del contenuto di una finestra si può utilizzare import da riga di comando:
import nome_file.jpg
L’icona del mouse cambia e ci permette di cliccare nella finestra di cui volgiamo fare lo screenshot
Import è un tool che fa parte della suite imagemagick, per cui per installarlo basta digitare:
sudo apt-get install imagemagick
su Ubuntu, oppure:
sudo pacman -S imagemagick
su ArchLinux
OpenStreetMap: mapping party a Terlizzi
OSMQuake
A quasi tre mesi dalla presentazione ufficiale ad OSMit, pubblico finalmente il codice di OSMQuake purtroppo ancora incompleto e con il codice ancora molto sporco e incasinato (l’ho scritto in tre ritagli di tempo la sera tardi).
Ho aspettato così tanto perché mi sarebbe piaciuto completare alcune parti del software che avevo implementato soltanto in parte purtroppo però in questo periodo non ho molto tempo e preferisco pubblicare il codice in modo che chiunque voglia contribuire (anche per disegnare un logo ad esempio) possa farlo.
Il codice sorgente si trova attualmente qui, se qualcuno volesse collaborare posso metterlo su google code e usare svn per la gestione della versione.
Questo è il risultato dell’elaborazione di stamattina sull’Italia centrale.
Già dalla mappa è possibile vedere cosa manca:
- Il raggio del marker è direttamente proporzionale alla magnitudo ma il colore dovrebbe essere inversamente proporzionale al tempo, cosicchè i terremoti più recenti siano di un rosos più intenso.
- Sarebbe bello avere una didascalia con qualche indicazione riguardo i range di dimensioni e di colori e delle statistiche generate automaticamente
Per generare la mappa precedente basta avviare OSMQuake e poi premere sul tasto “Scarica” per effettuare il parsing della pagina e salvare gli eventi in un database sqlite (notare in basso a sinistra il numero degli eventi scaricati):
A questo punto si possono scegliere i parametri di filtraggio, lo zoom della mappa e il tipo di mappa (Mapnik, Osmarender e OpenArial) e si clicca su Genera mappa. A questo punto il software mostra le tile da scaricare e le dimensioni della mappa in pixel e inizia a scaricare le tile necessarie. Dopo di che le unisce e disegna sopra la mappa i marker calcolando dinamicamente il raggio.
Il risultato finale è una nuova finestra con la mappa:
Cosa funziona in OSMQuake:
- Parsing della pagina
- Riempimento del database con gli eventi
- Filtraggio per magnitudo
- Filtraggio per profondità
- Scelta dello zoom
- Scelta del server
- Calcolo delle tile da scaricare
- Calcolo delle dimensioni della mappa in pixel
Cosa non funziona (ancora!) in OSMQuake:
- Filtraggio degli eventi in base alla distanza da un punto geografico
- Calcolo dell’area coperta dalla mappa
- Filtraggio in base alla regione (ho già i bbox delle regioni italiane che mi ha dato Niccolò Rigacci ma non ho avuto il tempo di creare un dizionario con i bbox)
- Per generare una nuova mappa con la stessa istanza è necessario cancellare a mano le tile (io uso uno script in bash)
- Prima di scaricare di nuovo gli eventi è necessario cancellare il file del database (il file prova)
Cosa sarebbe mi piacerebbe implementare in OSMQuake:
- Riscrivere il codice ad oggetti
- Implementare il threading per lo scaricamento delle tile (la policy del tile server di OpenStreetMap permette solo due thread)
- Permettere di mantenere un database storico degli eventi e di filtrarli anche per periodo per creare delle mappe mensili o settimanali di una determinata zona
- Permettere l’esportazione deglio eventi sismici in KML
Qualsiasi contributo è benaccetto!
Dfu-util tip and trick
Da quando ho comprato il nuovo notebook, dfu-util non più riconosce automaticamente la porta usb a cui è collegato l’OpenMoko.
Per ovviare, è necessario passare come parametro il codice identificativo del device. Per ottenere una lista dei device collegati eseguire in un terminale:
$: sudo dfu-util --list
Il device corrispondente all’OpenMoko è quello identificato da una stringa simile a questa:
Found Runtime: [0x1d50:0x5119] devnum=12, cfg=0, intf=2, alt=0, name="USB Device Firmware Upgrade"
Possiamo creare due alias in .bashrc in modo da non dover digitare ogni volta il codice del device:
alias mk='sudo dfu-util --device 0x1d50:0x5119 -a kernel -R -D $1'alias mf=’sudo dfu-util –device 0x1d50:0×5119 -a rootfs -R -D $1′
A questo punto, per flashare l’OpenMoko, sara sufficiente digitare:
$: mk nome_file_kernel
$: mf nome_file_filesystem






