Raspberry Pi: installazione e configurazione di Debian Squeeze e Raspberry Pwn

raspberry pwn

Da qualche settimana sono (felice?) possessore di un Raspberry Pi Model B, quello per intenderci con una Ethernet e 2 USB. Come SD card ho acquistato una Kingston Classe 4 da 16GB (16GB SDHC Class 4 (SD4/16GB), uno tra i modelli funzionanti presenti nella lista delle Working SD Card. Ho deciso di installarci sopra Debian Squeeze utilizzando l’immagine disponibile nella pagina di download del Raspberry Pi. Va detto subito che il boot del Raspberry è possibile soltanto da SD Card anche se nulla vieta poi di montare /home e altre cartelle su una pen drive USB per ottimizzare la velocità di scrittura.

Per scrivere il file .img di Debian Squeeze, che si chiama “debian6-19-04-2012.img”, ho usato su Windows il programma Win32DiskImager, se invece preferite scriverlo da Linux è possibile usare “dd” con il seguente comando:

# dd bs=1M if=debian6-19-04-2012.img of=/dev/sdc (sdc va sostituito con il device che identifica la SD Card nel vostro sistema Linux)

Leggi tutto

Howto: Debian Squeeze+Nginx+WordPress

Nginx è uno tra i webserver open source che si sta diffondendo di più tra i sistemisti che ricerchino performance elevate e un consumo di risorse inferiore rispetto ad Apache (ma anche ad alternative “minimaliste” con Lighttpd). Il grosso neo di nginx è la poca documentazione, sul sito ufficiale c’è davvero poco, la cosa sarebbe in parte compensata da diversi articoli che però sono tutti più o meno imprecisi nella descrizione delle giuste configurazioni da apportare al webserver, soprattutto quando si vuole far funzionare WordPress. Quello che riporto è un howto, frutto dell’esperienza che ho avuto installando nginx su un VPS (sull’ottimo Quickweb), che spero sia di aiuto a quanti vogliano installare nginx su Debian Squeeze e servire pagine generate da WordPress.

La prima cosa da fare su Debian Squeeze è aggiungere il repository dotdeb al file “sources.list” per poter installare la versione 1.0 di nginx. Per farlo basterà dare da terminale come utente root i seguenti comandi:

nano /etc/apt/sources.list

aggiungiamo la seguente riga:

deb http://packages.dotdeb.org stable all

a questo punto dobbiamo aggiungere la chiave GnuPG così:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | sudo apt-key add -
rm dotdeb.gpg

aggiorniamo il tutto con APT:

apt-get update

Adesso possiamo installare php5, php5-fpm, cioè il FastCGI Process Manager che ci consentirà di servire pagine PHP attraverso nginx, e ovviamente nginx stesso:

apt-get install php-apc php-auth php-net-smtp php-net-socket php-pear php5 php5-cgi php5-cli php5-common php5-curl php5-dev php5-gd php5-imagick php5-imap php5-mcrypt php5-mysql php5-pspell php5-sqlite php5-suhosin php5-xmlrpc php5-xsl php5-fpm nginx

fatto questo potremo installare anche MySQL server e client (in fase di installazione di MySQL server dovremo scegliere una password da impostare per l’utente root)

apt-get install mysql-server mysql-client

Impostiamo delle configurazioni personalizzate a nginx andando a modificare alcuni valori nel file di configurazione nginx.conf:

nano /etc/nginx/nginx.conf

client_max_body_size 20M;
client_body_buffer_size 128k;

a questo punto possiamo rimuovere il virtual host di default di nginx e crearne uno nuovo per il sito che dovremo servire:

cd /etc/nginx/sites-enabled
rm default

creiamo un file per il nostro sito

nano /etc/nginx/sites-available/www.bufferoverflow.it

Incolliamoci la seguente configurazione:

server {
listen 80;
server_name www.bufferoverflow.it bufferoverflow.it;

access_log /var/log/bof.access_log;
error_log /var/log/bof.error_log;

root /var/www/htdocs/www.bufferoverflow.it;
index index.php index.htm index.html;

try_files $uri $uri/ /index.php?q=$uri&$args;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/htdocs/www.bufferoverflow.it$fastcgi_script_name;
include fastcgi_params;
}
}

La riga “try_files $uri $uri/ /index.php?q=$uri&$args;” è fondamentale per il funzionamento di WordPress come anche le righe da “location ~ .php$ {” a “include fastcgi_params;” basilari per il funzionamento di php5-fpm.

Creiamo a questo punto un nuovo link simbolico per il virtual host creato sotto “sites-enabled“:

ln -s /etc/nginx/sites-available/www.bufferoverflow.it /etc/nginx/sites-enabled/www.bufferoverflow.it

Configuriamo php5-fpm andando a modificare il file “/etc/php5/fpm/pool.d/www.conf”, qui la scelta fondamentale da fare è se rendere FastCGI dinamico o statico, personalmente dovendo agire su un VPS con solo 300 MB di RAM ho preferito impostare come statico php5-fpm in modo tale da non trovarmi con un consumo di RAM eccessivo, inoltre ho limitato il numero di processi generati, questo è il valore da variare:

; Choose how the process manager will control the number of child processes.
; Possible Values:
; static - a fixed number (pm.max_children) of child processes;
; Note: This value is mandatory.
pm = static

inoltre ho variato il numero massimo di processi figli generati impostando “5”:

pm.max_children = 5

Molto importante è decidere se php5-fpm ascolterà su una porta o su un socket, personalmente ho optato al momento per farlo ascoltare sulla porta 9000, quella di default, su localhost, la riga è questa:

listen = 127.0.0.1:9000
;listen = /dev/shm/php-fastcgi.socket #l'ascolto su un socket dovrebbe migliorare le performance ma ancora non ho provato

Potete vedere il mio file di configurazione su Pastebin.

Apportate le dovute configurazioni dovrete riavviare sia nginx che php5-fpm.

Restart di nginx:

/etc/init.d/nginx restart

Restart php5-fpm:

/etc/init.d/php5-fpm restart

A questo punto dovremo installare WordPress, tralascio le operazioni da fare per l’installazione ma segnalo la procedura di creazione del database da linea di comando con MySQL client. La cosa importante per far funzionare adeguatamente i pretty permalink è ricorrere all’installazione di un plugin che consente di eliminare “index.php” dalle URL consentendo di lasciare la struttura di permalink scelta da noi, il plugin è nginx compatibility.

In conclusione, consiglio qualche link che mi ha aiutato notevolmente nell’installazione e configurazione di nginx:

  1. nginx + php-fpm + debian squeeze tutorial – the fastest way to host php!
  2. Howto nginx + wordpress + ubuntu shortest setup
  3. nginx wiki
  4. How To: Install NginX, PHP-FPM, MySQL, PHP 5.3.3 & WordPress on Ubuntu (Part 2)
  5. Installing Nginx With PHP5 And MySQL Support On Debian Lenny

Videosorveglianza con il Linksys NSLU2 e Debian

nslu2 webcam server

Qualche settimana fa ho tirato fuori dalla busta delle “cianfrusaglie computeristiche” ammassate nell’armadio un oggetto di cui quasi mi ero dimenticato: il Linksys NSLU2. Per chi no lo conoscesse, si tratta di un mini-NAS dotato di presa ethernet e due USB per collegare degli hard disk esterni e renderli disponibili come unità di backup in una rete LAN. La bellezza di questo NAS consiste nella possibilità di potervi installare alcune distribuzioni Gnu/Linux, tra cui anche Debian. Quest’ultima è disponibile come firmware in formato .bin installabile di pochi MB: Debian/NSLU2 (armel) 5.0.3.

Il mio obiettivo con l’NSLU2 è stato quello di creare un sistema di videosorveglianza casalingo, utilizzando una webcam che trasmetta immagini visualizzabili da remoto attraverso un webserver. Vediamo i passaggi fondamentali da compiere.

Leggi tutto

LXDE, il mio nuovo desktop environment su Ubuntu e Slackware?

LXDE desktop environment

Dopo aver sentito che il team di sviluppatori Debian ha aggiunto LXDE in Lenny mi sono incuriosito, soprattutto perché potrebbe essere un ottimo desktop environment soprattutto per Asus Eee PC. E ha aumentato la mia voglia di provare LXDE un articolo di Desktop Linux. Così ho deciso di aggiungere i repository sulla mia virtual machine di test con Ubuntu Hardy Heron.

Basta aggiungere due repository al file sources.list:

echo "deb http://ppa.launchpad.net/lxde/ubuntu hardy main" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/lxde/ubuntu hardy main" | sudo tee -a /etc/apt/sources.list

Ed eseguire:

sudo apt-get update
sudo apt-get install lxde

Chiusa la sessione grafica e riavviata si avrà a disposizione la scelta di LXDE come desktop environment.

Devo dire che la leggerezza è la prima cosa che si nota confrontata a Gnome e a KDE 4. Il sistema è molto più reattivo e mi piace molto la scelta di aver selezionato PCMan come filemanager di default. Per un utente come me che ama un DE spartano e senza fronzoli penso sia una scelta ottimale. Dovrò provarlo anche su Slackware ma penso che mi darà soddisfazioni.