Tag Archives: linux

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

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

Pycp: usare cp con una progress bar

Per quanti usano ancora il comando del terminale cp per copiare i file risuslterà comodo installare pycp, un wrapper di cp scritto in python che implementa una progress bar tetstuale per ogni singolo file trasferito.

E’ molto comondo nel caso di trasferimento di grosse cartelle, in cui il cursore rimane immobile (sembra quasi bloccato) fino a trasferimento completato. Con pycp è possibile vedere, oltre alla progress bar, anche la velocità di trasferimento e l’ETA (estimated time of arrival) di ogni singolo file!

Per installarlo è necessario scaricare ed installare prima il modulo python-progressbar:

$: wget http://pypi.python.org/packages/source/p/progressbar/progressbar-2.2.tar.gz

$:  tar xvf progressbar-2.2.tar.gz

$:  cd tar xvf progressbar-2.2.tar.gz

$: sudo python setup.py install

A questo punto scarichiamo ed installiamo pycp:

$: wget http://yannick-lm.dyndns.org/soft/pycp/pycp-3.2.tar.gz

$: tar xvf pycp-3.2.tar.gz

$: cd tar xvf pycp-3.2.tar.gz

$: sudo python setup.py install

Per evitare di ricordarsi di digitare pycp al posto di cp è possibile creare un alias per la nostra shell, editando il file ~/.bashrc:

$: vim .bashrc

Inserendo la riga:

alias cp=’pycp’

Carichiamo le modifiche:

$: source .bashrc

In questo modo al comando cp verrà automaticamente sostituito pycp.

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

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:

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

Installare dreamlinux

In questi giorni ho smanettato un pochino con Dreamlinux, una distribuzione brasiliana Debian-based che fa il verso alla grafica di MacOs (bisogna ammettere che quelli della Apple ci sanno fare con la grafica).

Vediamo come installarla sul nostro pc:

  • Scarichiamo l’iso della versione 3.1 da sito ufficiale, e masterizziamola con il nostro programma peferito (ehm… brasero!)
  • Inseriamo il cd nel lettore e riavviamo assicurandoci che il BIOS avvii il sistema dal CD come prima opzione.
  • Dalla schermata di boot selezioniamo il desktop environment preferito tra Gnome e Xfce (io ho selezionato Xfce) e aspettiamo il caricamento della versione live, che si presenta così:

Il desktop di dreamlinux xfce

  • Godetevi per qualche instante l’accattivante grafica plasticosa e poi cliccate sulla seconda icona da destra sulla barra in basso per accedere al tool di configurazione di sistema e modificare il layout della tastiera (di default è in americano)

system comfiguration

  • Se, come me, state installando dreamlinux su un notebook e notate che il processore e la ventolina non hanno un minuto di riposo, probabilmente il sistema non avrà caricato il relativo modulo di gestione della frequenza. Nel mio caso (Athlon K7) è stato necessario aprire un terminale e digitare:

$: sudo modprobe powernow-k7

$: sudo powernowd

  • Il programma di installazione non include un partizionatore complesso che permetta di modificare la tabella delle partizioni, per cui, se necessario, bisogna usare gparted (avviabile dal terminale)
  • Per avviare il programma d’installazione clicchiamo su DL Installer, compiliamo i campi in maniera corretta (per compilare la parte relativa alle partizioni basta cliccare sull’attributo relativo e selezionare la voce corretta dal menù a tendina) e clicchiamo su Apply

dreamlinux installer

In pochi minuti il sistema sarà installato e… quasi pronto all’uso, sarà necessario infatti impostare definitivamente la tastiera sul layout italiano, rendere automatico il caricamento del modulo per la gestione della frequenza del processore e rendere automatico l’avvio del demone powernowd

Apriamo, con i permessi root, il file /etc/X11/xorg.conf

$: sudo mousepad /ect/X11/xorg.conf

e modifichiamo la stringa “XkbLayout”    “us” in “XkbLayout”    “it”

Apriamo, con i permessi root, il file /etc/modules

$: sudo mousepad /etc/modules

e aggiungiamo la stringa powernow-k7

Infine dal tool di configurazione di sistema scegliamo Services e selezioniamo il demone powernowd.

Enjoy your dreamlinux! ;-)