Category Archives: Server

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

[How-to] Installare Lighttpd con MySQL e PHP5 su Debian Lenny

Lighttpd (pronuncia lighty) è un web-server , rilasciato sotto licenza BSD modificata, progettato per un uso ottimizzato delle risorse. Scritto da Jan Kneschke nel 2003, per distrarsi dal suo lavoro di tesi, è un potente web server che fa della scalabilità, dell’uso parsimonioso di risorse e dell’aderenza agli standard i suo cavalli di battaglia. E’ consigliato per macchine obsolete o per server con carichi di lavoro massicci, tra gli utilizzatori più famosi figurano Wikipedia ed OpenStreetMap.

Per installare Lighttpd con supporto MySQL e PHP5 su una macchina con Debian 5.0 Lenny, è sufficiente installare i seguenti pacchetti:

#: sudo apt-get install mysql-server mysql-client lighttpd php5-cgi php5-mysql

Durante l’installazione il sistema chiederà di inserire due volte la password di root, per cui non sarà necessario configurarla successivamente.

Puntando il browser su localhost, si ottiene la pagina di benvenuto di lighttpd in cui è descritta anche la configurazione del server:

pagina benvenuto lighttpd

Ricapitolando:

  • la document root è /var/www (come per apache)
  • il file di configurazione è /etc/lighttpd/lighttpd.conf
  • il programma cercherà i moduli cgi in /usr/lib/cgi-bin e il loro utilizzo deve essere abilitato con l’appropiata direttiva
  • i file di log sono salvati in /var/log/lighttpd e la loro rotazione può essere cambiata modificando il file /etc/logrotate.d/lighttpd

Abilitare il fastcgi per i file php

Per abilitare il fastcgi per i file php, per installare ad esempio un forum o un blog in php, è necessario editare due file.

In /etc/php5/cgi/php.ini, decommentare la riga

; cgi.fix_pathinfo = 0

Eliminando il punto e virgola e modificando la variabile zero in uno

cgi.fix_pathinfo = 1

In questo modo il percorso che indica il PHP-CGI viene impostata in maniera fissa piuttosto che essere ricavata da SCRIPT_FILENAME.

Nel file /etc/lighttpd/lighttpd.conf aggiungere la riga:

"mod_fastcgi",

dopo la riga

"mod_accesslog",

e in fondo al file aggiungere il percorso del PHP-CGI  (per le personalizzazioni e altri moduli si faccia riferimento alla documentazione ufficiale)

fastcgi.server = ( ".php" => ("localhost" => ( "bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket")))

Riavviare Lighttpd

#: /etc/init.d/lighttpd restart

Spostarsi nella DocumentRoot di Lighttpd e creare il file info.php in questo modo:

#: cd /var/www

#:  vi info.php

Premere il tasto i e aggiungere nel file la seguente riga:

<?php phpinfo(); ?>

Salvare e chiudere premendo Esc :wq.

Puntare il browser su localhost/info.php per controllare che tutto funzioni.