Tag Archives: Ubuntu

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 :)

Porteremo linux in Biblioteca!

La mia prolungata assenza da questo blog è causata principalmente dagli impegni universitari (gli ultimi esami e la tesi), ma anche dalla nuova avventura che comincerà a breve: portare Linux in biblioteca.

A luglio la Regione Puglia ha indetto un bando dal titolo Principi Attivi – Giovani idee per una Puglia migliore, con il quale avrebbe finanziato 305 idee innovative a carattere imprenditoriale; anche noi dopo 2 mesi di duro lavoro abbiamo presentato il nostro progetto.

Il 23 dicembre scorso sono state pubblicate le graduatorie, ma solo ieri è arrivata la comunicazione scritta ufficiale: il nostro porgetto è stato approvato.

Ci occuperemo dell’informatizzazione della biblioteca comunale con software libero, in particolare adotteremo PMB come ILS (integrated library system) e ubuntu server come sistema operativo del web server; inoltre tutto il materiale prodotto durante il progetto sarà fatto utilizzando esclusivamente software libero.

Che dire, proprio una bella soddisfazione e speriamo che possa fare breccia in tutte le amministrazioni comunali.

Stay tuned per tutti gli aggiornamenti e gli how-to di tipo tecnico.

How-to: da Apt di Ubuntu a Pacman di Arch Linux

arch-linux-logo

Era già da un po’ di tempo che Xubuntu cominciava ad andare stretta nel mio notebook macinino e da qualche mese avevo già cominciato a pensare ad un’altra distro più leggera e performante di Xubuntu (ammettiamolo, è sempre più pachidermica :-D ), domenica scorsa avevo il pomeriggio libero ed ho installato Arch Linux ed è stato amore a prima vista.

Non è mia intenzione, in questo post, parlar male di Ubuntu e incensare Arch Linux e il metodo Arch -anche perché basta provare Arch per rendersi conto della differenza abissale tra le due distro- ma, considerando che Arch è una rolling release, vorrei semplicemente compilare la lista dei comandi di pacman (il gestore di pacchetti di Arch) corrispondenti ai vecchi e cari comandi di apt per facilitare la vita a chi voglia provarla.

Questo how-to presuppone che abbiate installato Arch Linux -se non lo avete ancora fatto potete seguire l’ottima guida passo passo sul wiki italiano- e che non vi spaventi usare soltanto il terminale considerato pacman non ha ancora una GUI matura.

NB: tutti i comandi devono essere dati da root o fatti seguire a sudo

Comando Pacman Comando APT Descrizione
pacman -Sy apt-get update Aggiorna il database dei pacchetti
pacman -Su apt-get upgrade Aggiorna il sistema
pacman -Syu apt-get update && apt-get upgrade Aggiorna il database e in seguito il sistema
pacman -Qdt apt-get upgrade Aggiorna il sistema
pacman -Rs $(pacman -Qtdq) apt-get autremove Elimina i pacchetti orfani
pacman -Scc apt-get clean Pulisce la cache locale dei pacchetti
pacman -S pacchetto apt-get install pacchetto Installa un pacchetto
pacman -Sy pacchetto apt-get upgrade && apt-get install pacchetto Aggiorna il database e installa il pacchetto
pacman -Rsn pacchetto apt-get–purge remove pacchetto Elimina il pacchetto, le sue dipendenze inutilizzate e i file di configurazione

Mancando Pacman di una GUI la cosa che lascia spaesati, almeno per me lo è stato, è la ricerca di un pacchetto nel database. Su Ubuntu, se non conoscevo il nome del pacchetto, usavo Synaptic per la ricerca e molto raramente apt-cache da terminale, in Arch invece i comandi di ricerca sono inclusi in pacman.

pacman -Ss regexp

Se la lista pacchetti è molto lunga si può utilizzare less per migliorare la leggibilità dell’output

pacman -Ss regexp | less

Il comando precedente cerca delle corrispondenze di regex (che puo’ essere anche un’espressione regolare) nella descrizione e nel nome del database dei pacchetti.

pacman -Qs regexp | less

Il comando precedente cerca delle corrispondenze di regex (che puo’ essere anche un’espressione regolare) nella descrizione e nel nome nei pacchetti installati.

Se proprio non potere fare a meno di utilizzare un front-end grafico segnalo due progetti:

  1. gtkpacman GUI per pacman
  2. pacupdate si carica come applet nella barra di sistema e notifica gli aggiornamenti

OpenMoko FreeRunner: guida completa passo-passo (parte 1)

Finalmente dopo qualche giorno di attesa ho ricevuto anche io il mio FreeRunner e la prima cosa che ho fatto è stata personalizzare ed aggiornare il software in dotazione.
Dopo aver girato in lungo e in largo su internet e aver seguito varie guide ho deciso di raccoglierle tutte in una mega-guida da seguire passo passo.

N.B. La procedura è valida per qualsiasi distribuzione linux ma è dedicata alla distribuzione Ubuntu Hardy 8.04

Preparativi

Inseriamo la sim, la microSD e la batteria in dotazione seguendo la guida ufficiale del wiki e carichiamo completamente la batteria per la prima volta.

Flashing dell’immagine e del kernel

L’immagine e il kernel preinstallati saranno sicuramente obsoleti per cui sarà necessario aggiornarli, attraverso una procedura chiamata flashing.
Scarichiamo l’immagine ufficiale aggiornata da questo indirizzo, dobbiamo scaricare il file che è contraddistinto dalla notazione:

Om2008.8-gta02-aaaammgg.rootfs.jffs2

dove aaaa, mm e gg stanno rispettivamente per anno, mese e giorno di rilascio.
Dallo stesso link è possibile scaricare anche il kernel ufficiale aggiornato, contraddistinto dalla notazione

Om2008.8-gta02-aaaammgg.uImage.bin

dove aaaa, mm e gg hanno lo stesso significato precedente. Esiste anche un kernel non ufficiale, mantenuto da mwester, che sembra allungare decisamente la vita della batteria senza preguidicare il funzionamento del telefono, quest’ultimo è scaricabile da questo indirizzo.
Infine scarichiamo dfu-util dai repository di Intrepid, cliccando su questo link e scegliendo un server, e lo installiamo digitando da un terminale:

$: sudo dpkg -i dfu-util_0.0+r4067-3.1_i386.deb

Adesso siamo pronti per aggiornare, apriamo un terminale e spostiamoci nella cartella in cui abbiamo scaricato il kernel e il rootfs, premiamo il tasto AUX (quello in alto a destra) e il tasto Power del FreeRunner fino a quando comparirà il boot menù NOR.
Colleghiamo velocemente il cavetto usb in dotazione al FreeRunner al computer e da un terminale digitiamo:

$: sudo dfu-util -a kernel -R -D nome_immagine_kernel

Attendiamo qualche minuto e il nuovo kernel sarà installato sulla nostra mitica saponetta.

A questo punto è necessario installare il nuovo rootfs, semplicemente digitando da un terminale

$: sudo dfu-util -a rootfs -R -D nome_immagine_rootfs

Se entrambe le operazioni sono andate a buon fine, la seconda richiede diversi minuti, sul FreeRunner sarà installata l’ultima versione del kernel e del rootfs.

n.b. se si collega il cavetto prima di aver acceso il FreeRunner, l’alimentazione del cavetto farà accedere l’OpenMoko per sarà necessario aspettare termini il boot per poi spegnerlo, per cui PRIMA accediamo al boot menù e poi colleghiamo il cavetto!

Collegare il FreeRunner al pc e ad Internet

Modifichiamo, con i privilegi da amministratore, il file /etc/network/interfaces

$: sudo gedit /etc/network/interfaces

Aggiungendo queste righe in fondo:

# FreeRunner
auto usb0
iface usb0 inet static
address 192.168.0.200
netmask 255.255.255.0
network 192.168.0.0
up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &
up echo 1 > /proc/sys/net/ipv4/ip_forward &
up iptables -P FORWARD ACCEPT &
down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &

Modifichiamo, con i privilegi da amministratore, il file /etc/hosts

$: sudo gedit /etc/hosts

aggiungendo in alto questa riga:

192.168.0.202 openmoko (possiamo sostituire openmoko con un altro nome)

Modifichiamo, sempre con i privilegi da amministratore, il file /etc/udev/rules.d/85-ifupdown.rules

$: sudo gedit /etc/udev/rules.d/85-ifupdown.rules

in modo che la riga LABEL=”net_end” si trovi prima della riga che comincia con ACTION==”remove”

Riavviamo il demone che gestisce il networking:

$: sudo /etc/init.d/networking restart

Se (e solo se!) il pc è dietro una rete con intervallo di indirizzi 192.168.0.x (dietro un router, ad esempio) digitiamo questo comando in un terminale:

$: sudo route add -host 192.168.0.202 dev usb0

Infine possiamo collegarci alla saponetta semplicemente digitando:

$: ssh root@openmoko (sostituire openmoko con l'eventuale nome scelto in precedenza)

Alla richiesta della password premiamo semplicemente invio e saremo collegati sia ssh al FreeRunner!

N.B. da ora in poi le istruzioni da digitare su terminale root (contraddistinte da #:) vanno digitate sul terminale collegato al FreeRunner via ssh

La prima cosa da fare è impostare una password semplicemente digitando:

#: passwd

e digitate due volte la password.

Infine, per collegare l’openmoko ad Internet attraverso l’usb, dobbiamo modificare il file /etc/network/interfaces del FreeRunner, digitando:

#: vi /etc/network/interfaces

Adesso premiamo i per entrare nella modalità editing di vi e modifichiamo la porzione di file relativa ad usb0 in modo che risulti uguale a questa (solitamente è necessario modificare solo le ultime due righe):

iface usb0 inet static
address 192.168.0.202
netmask 255.255.255.0
network 192.168.0.0
gateway 192.168.0.200
up echo nameserver 208.67.222.222 > /etc/resolv.conf
up echo nameserver 208.67.220.220 >> /etc/resolv.conf

Premiamo esc per uscire dalla modalità editing di vi e poi digitiamo :wq  (i caratteri compariranno in basso a sinistra) e diamo invio per salvare ed uscire da vi.

Riavviamo i servizi di rete del FreeRunner:

#: /etc/rc0.d/K40networking restart

Adesso il FreeRunner è collegato alla rete!

Aggiornare e personalizzare il software base

Dopo aver collegato l’OpenMoko ad internet aggiorniamo i pacchetti utilizzando opkg, il gestore di pacchetti di OpenMoko:

#: opkg update

#: opkg upgrade

Attenzione: se stai usando OM 2008.12 e vuoi cambiare la tastiera e il tema di OM allora devi seguire questa guida più aggiornata.

La tastiera standard di OpenMoko è pienamente utilizzabile con le dita, ma la tastiera di Rasterman è più completa e semplice da utilizzare. Per installarla è sufficiente digitare questi comandi:

#: opkg install illume-config

Adesso disabilitiamo la tastiera di default di Qtopia, modificando il file /etc/X11/Xsession.d/89qtopia

#: vi /etc/X11/Xsession.d/89qtopia

Premiamo i per entrare i modalità editing e inseriamo questa riga nel file:

export QTOPIA_NO_VIRTUAL_KEYBOARD=1

Premiamo il tasto esc e poi digitiamo :wq per salvare e uscire da vi, a questo punto installiamo il pacchetto opkg install illume-config-illume:

#: opkg install illume-config-illume

puliamo la cache di Enlightenment:

 #: rm -rf ~/.e/e/config/illume

e riavviamo X:

#: /etc/init.d/xserver-nodm restart

All’avvio modifichiamo le preferenze della tastiera di Illume premendo il triangolino capovolto che compare nella parte alta dello schermo al centro, poi la chiave inglese che sarà comparsa nell’angolo in alto a sinistra e infine premiamo (con le dita, of course) sulla scritta Keyboard e selezioniamo la voce Default.

Installare software utile

Il FreeRunner ha una vasto assortimento di software interessante, ufficiale e non, da installare per sfruttare appieno l’hardware e le potenzialità del dispositivo.

Da buon mapper non posso che cominciare con un buon software di tracking: TangoGPS. :-P

Prima di installare Tango è necessario far funzionare il gps, dal terminale digitiamo questi comandi:

#: opkg install gpsd
#: echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd

Installiamo il pacchetto ufficiale (solitamente più aggiornato della versione dei repository multiverse di OpenMoko)

#: opkg install tangogps

La caratteristica di TangoGPS è quella di disegnare il tracking sulle mappe di OpenStreetMap in questo modo possiamo sapere cosa è già stato mappato e quanto è preciso!
Per scaricare le mappe della zona interessata, dobbiamo collegare il FreeRunner ad Internet e avviare TangoGPS.

Usando lo zoom (tasto + in alto) e le barre di scrolling visualizziamo la zona desiderata allo zoom desiderato, poi digitiamo su una zona qualunque della mappa e dal menù selezioniamo map download, poi i livelli di zoom da scaricare a partire da quello attuale (per cui se volete scaricare il massimo livello di zoom di un area dovete zommare fino a livello 11 e poi scelgere +6 nel menù di scelta dello zoom) e infine clicchiamo sul pulsante OK e dopo qualche minuto avremo le mappe scaricate in locale (è possibile controllare il downloading delle mappe nell’angolo in basso a sinistra, c’è un conto alla rovescia che indica i tiles che il programma dovrà ancora scaricare), pronte da usare per le uscite di mapping.

N.B. Se il FreeRunner non è collegato alla rete può succedere che TangoGPS si impalli perché cerca di scaricare le mappe ma non riesce a collegarsi ai server di OpenStreetMap, per evitare questo incoveniente basta despuntare la casella Auto download map tiles dalla schermata Config (ultimo tasto in basso a destra).

Continua…

Pythonizzare gedit

In attesa di imparare (e pythonizzare) per bene Vim, scrivo i miei script in Python con Gedit, l’editor di testi standard di Gnome, che se adattatto alla scrittura di codice Python attraverso alcuni utili plugin (i plugin di Gedit sono scritti in Python!) può diventare davvero un ottimo IDE.

Plugin standard

Per installare il pacchetto dei plugin standard è sufficiente installare il pacchetto gedit-plugins da synaptic oppure da terminale digitando:

$: sudo apt-get install gedit-plugins

Tra i molteplici plugin standard installati, i più interessanti sono:

  • Commento codice
  • Console Python
  • Terminale incorporato
  • Traccia gli spazi

Per abilitarli basta avviare Gedit e dal menù selezionare Modifica–>Preferenze–>Plugin e poi spuntare la casella del plugin relativo.

Plugin aggiuntivi

Esistono alcuni plugin aggiuntivi molto utili, i più interessanti sono:

  • Auto completition per l’autocompletamento del codice
  • Class Browser per navigare tra le classi

Per installare il primo è necessario prelevare il plugin da questo indirizzo e poi copiare i file nella cartella ~/.gnome2/gedit/plugins, volendo usare il terminale :-D

$: wget http://elias.hiex.at/gedit-plugins/auto_completion.gedit-plugin

$: wget http://elias.hiex.at/gedit-plugins/auto_completion.py

$: mv auto_completion.* ~/.gnome2/gedit/plugins

Per installare il plugin Class Browser invece, disponibile a questo indirizzo, è necessario installare prima il pacchetto exuberant-ctags e solo successivamente scaricare il pacchetto contenente i file e copiarlo nella cartella ~/.gnome2/gedit/plugins

$: sudo apt-get install exuberant-ctags

$: wget http://www.stambouliote.de/download/gedit_classbrowser-0.2.1.tar.gz

$: tar zxvf gedit_classbrowser-0.2.1.tar.gz

$: cd gedit_classbrowser-0.2.1

$: mv * ~/.gnome2/gedit/plugins

Per abilitare i due plugin è sufficiente avviare Gedit e dal menù selezionare Modifica–>Preferenze–>Plugin e poi spuntare le due relative caselle.

Per visualizzare i plugin è necessario avere la barra inferiore e la barra laterale attiva, digitando rispettivamente CTRL+F9 e F9, ed ecco come si presenta il mio Gedit:

Utilizzare sul proprio pc TangoGPS e le mappe di OpenStreetMap

Se inserire le mappe di OpenStreetMap nel proprio sito/blog è una grande soddisfazione, soddisfazione ancora più grande è vedere le mappe di OpenStreetMap funzionanti su un navigatore GPS.

Nella mailinglist italiana di OpenStreetMap si parlava di OpenMoko e di TangoGPS, il navigatore per palmari scritto in python :-D che utilizza le mappe di OSM, e ovviamente io non potevo resistere alla tentazione di provare il navigatore sul mio pc utilizzando l’antenna esterna che uso per raccogliere le tracce e una penna bluetooth da due soldi.

Se usate Ubuntu (o Debian) è possibile scaricare il pacchetto .deb direttamente dal sito (link diretto) e poi da terminale digitare:

$: sudo dpkg -i tangogps_0.9.2_i386.deb

Una volta installato il software dobbiamo solo collegare l’antenna al demone che gestisce il gps (gpsd), per farlo ho seguito pedissequamente l’ottima guida del blog di michelem.

Una volta configurato il tutto (basta seguire la guida che non riporterò qui) ho avviato TangoGps e mentre iniziavo a cercare il pulsante per scaricare le mappe il software si è agganciato all’antenna e ha scaricato automaticamente le mappe di OpenStreetMap, fenomenale!

Ecco uno screenshot (click sull’immagine per ingrandire), il cerchietto blu è dove si trova la finestra della mia stanza… precisissimo!

casa mia da tangogps

Forza che aspettate, correte fuori di casa e mappate tutto quello che vi capita a tiro per avere la soddisfazione di utilizzare le mappe che avrete contribuito a creare.

Python

In questa pagina (in continuo aggiornamento) , ci sono i link ai miei script e programmi open source scritti in python, non sono nulla di eccezionale ma svolgono egregiamente il loro lavoro e a volte sono anche carini.

Ultimo aggiornamento: 04 maggio 2009

Lo stambecco trova la sua strada

A pochi giorni dall’uscita di Hardy è già disponibile la roadmap che porterà il team di Ubuntu a rilasciare, ad Ottobre, la versione 8.10 nome in codice Intrepid Ibex (stambecco intrepido).

Già domani si terrà l’incontro tra gli sviluppatori al Corinthia Towers Hotel di Praga, ed il rilascio della prima alpha è prevista per il sette giugno.