Il single-board computer Raspberry Pi si può con­fi­gu­ra­re in breve tempo per uti­liz­zar­lo come web server privato. Anche se le pre­sta­zio­ni risultano inferiori rispetto alle varianti com­mer­cia­li, in alcuni ambiti è comunque utile impostare un proprio web server: per esempio nel caso in cui si voglia ve­ri­fi­ca­re il proprio sito in un ambiente di test e gestirlo au­to­no­ma­men­te o qualora si vogliano am­mi­ni­stra­re per conto proprio i file e renderli di­spo­ni­bi­li su un Cloud. Nel nostro tutorial vi spie­ghia­mo come con­fi­gu­ra­re un pacchetto LAMP gratuito per il vostro web server su questo mini computer.

Cosa è possibile fare con un web server sul Raspberry Pi?

Se uti­liz­za­te un Raspberry Pi come web server, dovreste sapere che dispone di un hardware limitato. Le pre­sta­zio­ni del computer sono inferiori rispetto ad un comune web server, che viene messo a di­spo­si­zio­ne da un provider. Il Raspberry Pi non è molto adatto per la gestione di siti complessi (come ad esempio online shop o siti con contenuti dinamici) o per quelli con un numero elevato di vi­si­ta­to­ri. Spesso anche la poca banda larga della propria con­nes­sio­ne Internet è un im­pe­di­men­to per l’utilizzo di un Raspberry Pi come server completo. Tuttavia, ci sono diversi campi di ap­pli­ca­zio­ne per un web server, gestito su un Raspberry Pi, per esempio è possibile uti­liz­zar­lo come home server con accesso ad Internet o im­pie­gar­lo in una rete aziendale. Su questo si possono testare le pagine web prima di metterle online o gestire com­ple­ta­men­te in autonomia piccoli siti con pochi vi­si­ta­to­ri. Inoltre potete anche creare un vostre Cloud con­fi­gu­ra­re programmi per l’au­to­ma­zio­ne della casa (controllo delle luci, dei ter­mo­si­fo­ni, ecc.). Un altro vantaggio si rileva con i costi di gestione bassi di un web server su Raspberry Pi, visto che richiede solamente una con­nes­sio­ne ad Internet e la corrente, di cui in genere utilizza poco più di 5 watt. Anche se un web server rimane co­stan­te­men­te in funzione, i consumi non in­ci­de­ran­no molto sulla bolletta. Inoltre i costi una tantum di con­fi­gu­ra­zio­ne dei com­po­nen­ti necessari sono anche fa­cil­men­te pre­ve­di­bi­li.

I requisiti per impostare un web server sul Raspberry Pi

Il web server pre­sen­ta­to qui rap­pre­sen­ta solo una delle molti varianti per poter uti­liz­za­re un Raspberry Pi come web server. Oltre al mini computer sono anche ne­ces­sa­rie:

  • una scheda SD sul quale impostare il sistema operativo Raspbian;
  • una con­nes­sio­ne ad Internet, tramite cavo di rete (con­si­glia­to) o Wi-Fi;
  • la corrente per il cavo micro USB.

La variante a maggior risparmio ener­ge­ti­co si ottiene con un web server “headless”, cioè senza schermo e di­spo­si­ti­vi di ingresso, a cui andrebbe con­fi­gu­ra­to un accesso remoto al server tramite SSH: grazie ad un client SSH (come PuTTY e WinSCP) per Windows o OpenSSH per i sistemi operativi UNIX) è possibile impostare un web server tramite un computer, uno smart­pho­ne o altri di­spo­si­ti­vi e ap­por­tar­gli le modifiche ne­ces­sa­rie. Se avete deciso di am­mi­ni­stra­re il server tramite SSH, inserite nel client l’indirizzo IPv4 del vostro Raspberry Pi per ef­fet­tua­re così il col­le­ga­men­to. Se non conoscete l’indirizzo IP del vostro Raspberry Pi, potete scoprirlo inserendo il comando hostname –I nel terminale (o in al­ter­na­ti­va ifconfig). Se, invece, uti­liz­za­te il Raspberry Pi headless, trovate l’indirizzo da inserire sul vostro router, aprendo la pagina delle im­po­sta­zio­ni del router sul vostro browser (in genere si trova all’indirizzo 192.168.0.1 o su fritz.box, se possedete un Fritz!Box). Se volete uti­liz­za­re il web server per rea­liz­za­re un Cloud privato o altre ap­pli­ca­zio­ni che hanno bisogno di uno spazio maggiore, dovreste ampliare la capacità di memoria. Quest’ope­ra­zio­ne è possibile fa­cil­men­te uti­liz­zan­do una pen drive o un hard disk esterno.

Rendere rag­giun­gi­bi­le un server sempre allo stesso indirizzo IP

Non solo i server devono essere sempre online, in modo che gli utenti possano accedervi in ogni momento, ma devono anche essere rag­giun­gi­bi­li allo stesso indirizzo IP. Ge­ne­ral­men­te un home server dispone di un indirizzo IP dinamico, che quindi cambia re­go­lar­men­te (in genere ogni 24 ore) e impedisce così che il server sia rag­giun­gi­bi­le sempre allo stesso indirizzo IP. Per questo sarebbe meglio un indirizzo IP statico, ma non tutti i provider lo offrono (e se sì, solo dietro pagamento di un ulteriore costo mensile). Ci sono anche altre pos­si­bi­li­tà per gestire un server allo stesso indirizzo, cioè tramite DNS dinamico (DDNS). Ci sono sia servizi DDNS a pagamento che gratuiti. Qui re­gi­stra­te un nome di dominio e lo collegate con un computer o un router. Tramite un software viene assegnato sempre au­to­ma­ti­ca­men­te un nome di dominio all’indirizzo IP attuale della vostra con­nes­sio­ne Internet, così che il server rimanga con­ti­nua­men­te ac­ces­si­bi­le online con lo stesso nome. Avete a di­spo­si­zio­ne anche un’altra opzione, qualora usiate un router Fritz!Box e vi con­net­tia­te ad Internet tramite questo: trovate maggiori in­for­ma­zio­ni su come con­fi­gu­ra­re il DNS dinamico sul vostro router sulla pagina del pro­dut­to­re.

Impostare un web server con LAMP sul Raspberry Pi

Grazie a questo tutorial con­fi­gu­ra­te la piat­ta­for­ma LAMP su un web server del vostro Raspberry Pi. LAMP è l’acronimo per un pacchetto di software, composto dalle seguenti parti: un sistema operativo Linux (in questo tutorial uti­liz­ze­re­mo quello già pre­in­stal­la­to sul di­spo­si­ti­vo, Raspbian), un web server Apache, un database MySQL e il lin­guag­gio di scripting PHP. Oltre al pacchetto LAMP, viene anche in­stal­la­to il programma per il database ph­p­MyAd­min. Per prima cosa loggatevi nella console (terminale) del vostro Raspberry Pi. Prima di co­min­cia­re con la con­fi­gu­ra­zio­ne del pacchetto LAMP, dovreste ag­gior­na­re tutti i pacchetti già in­stal­la­ti con questi comandi:

sudo apt-get update
sudo apt-get upgrade

Ora potete iniziare la con­fi­gu­ra­zio­ne dei singoli com­po­nen­ti LAMP. Nel tutorial vi guidiamo nei vari passaggi per mettere in evidenza i passi intermedi e per spiegarli meglio. Così verranno spiegate alcune relazioni im­por­tan­ti e mostrati alcuni test con i quali potete ve­ri­fi­ca­re il fun­zio­na­men­to dell’in­stal­la­zio­ne.

Impostare Apache

L’in­stal­la­zio­ne di un server Apache HTTP avviene ve­lo­ce­men­te. Basta un singolo comando per con­fi­gu­rar­lo e lo stesso vale anche per gli altri tre com­po­nen­ti della suite LAMP per il web server del Raspberry Pi. Per in­stal­la­re Apache 2, inserite nel terminale il seguente comando:

sudo apt-get install apache2

Per ve­ri­fi­ca­re se l’in­stal­la­zio­ne è andata a buon fine, inserite l’indirizzo IP del Raspberry Pi nella barra degli indirizzi del vostro browser. Se Apache 2 è stato con­fi­gu­ra­to cor­ret­ta­men­te, nel browser compare una pagina pre­im­po­sta­ta con la scritta “It works”. Questa pagina HTML si trova in Raspbian Jessie nella cartella /var/www/html/index.html, mentre nella vecchia versione di Raspbian (Wheezy) viene invece creata nella directory /var/www/index.html. Nella cartella potete mo­di­fi­ca­re e creare tutte le pagine che de­si­de­ra­te:

sudo nano /var/www/index.html

o

sudo nano /var/www/html/index.html

Una volta apportate le modifiche, dovreste poterle vedere dopo aver ag­gior­na­to la pagina nel browser.

Impostare il PHP

Ora in­stal­la­te PHP 5, in modo che il web server possa anche elaborare gli script PHP e non solo i file HTML, CSS e Ja­va­Script:

sudo apt-get install php5 libapache2-mod-php5

Potete generare un file PHP nella cartella /var/www. Per fare un test create il file phpinfo.php:

sudo nano phpinfo.php

Tramite un editor aprite il file e scrivete le seguenti righe:

<?php
phpinfo();
?>

Se nel browser inserite l’indirizzo IP del vostro Raspberry Pi seguito da /infophp.php (192.168.X.X/phpinfo.php), dovrebbe comparire la pagina cor­ri­spon­den­te. Se così è, avete impostato il PHP cor­ret­ta­men­te sul vostro Raspberry Pi.

Impostare MySQL

Con­fi­gu­ran­do MySQL, impostate il database del web server. Tramite il comando

sudo apt-get install php5-mysql mysql-server mysql-client

in­stal­la­te tutto il ne­ces­sa­rio. Subito dopo vi viene richiesto di scegliere una password di root per MySQL. Una volta ef­fet­tua­to questo passaggio e terminata la con­fi­gu­ra­zio­ne del database, finite l’in­stal­la­zio­ne riav­vian­do MySQL (tramite il comando sudo /etc/init.d/mysql restart) o il Raspberry Pi (tramite il comando sudo reboot).

Impostare ph­p­MyAd­min

Per am­mi­ni­stra­re un database MySQL è possibile uti­liz­za­re ph­p­MyAd­min. Con l’aiuto di questo software libero, gestite il database in modo facile tramite un’in­ter­fac­cia utente grafica nel browser. Per l’in­stal­la­zio­ne eseguite questa riga di comando:

sudo apt-get install phpmyadmin

Nella schermata che comparirà scegliete come web server Apache 2. Qui vi viene richiesto se deve essere in­stal­la­to il programma di gestione del database ph­p­MyAd­min, procedete con­fer­man­do. A questo punto dovete ancora scegliere una password per ph­p­MyAd­min (può essere la stessa uti­liz­za­ta per MySQL) e l’in­stal­la­zio­ne sarà poi com­ple­ta­ta.

Infine dovete collegare l’appena in­stal­la­to ph­p­MyAd­min con il web server Apache. Eseguite il seguente comando, tramite il quale potete mo­di­fi­ca­re il file di con­fi­gu­ra­zio­ne apache2.conf dall’editor:

sudo nano /etc/apache2/apache2.conf

Ora po­si­zio­na­te il cursore alla fine del file di con­fi­gu­ra­zio­ne (per fare ciò potete anche premere insieme la com­bi­na­zio­ne di tasti “CTRL“ + “V“) e scrivete qui una nuova riga nel file:

Include /etc/phpmyadmin/apache.conf

Ora salvate le modifiche tramite le ab­bre­via­zio­ni di tastiera “CTRL“ + “O“ e chiudete il file di con­fi­gu­ra­zio­ne con “CTRL“ + “X“. Dopo riavviate il web server Apache inserendo il seguente comando nella console:

/etc/init.d/apache2 restart

Ora avete con­fi­gu­ra­to il web server e potete anche am­mi­ni­stra­re il suo database di­ret­ta­men­te dal browser tramite ph­p­MyAd­min. Qui inserite nella barra degli indirizzi l’indirizzo IP del Raspberry Pi seguito da /ph­p­myad­min (192.168.X.X/ph­p­myad­min) e loggatevi sulla pagina con il nome utente “root” e la password MySQL scelta prima. Non appena vi siete loggati, potete elencare i dati su ph­p­MyAd­min, creare database e tabelle o eli­mi­nar­le, ma anche uti­liz­za­re altre funzioni.

Utilizzo del web server sul Raspberry Pi

Ora il vostro web server è con­fi­gu­ra­to e pronto per l’uso. Potete ad esempio creare e gestire un sito, inserendo pagine HTML e PHP sul vostro web server. Create di­ret­ta­men­te le singole pagine sul Raspberry Pi alla cartella /var/www (nel Raspbian Wheezy) o /var/www/html (nel Raspbian Jessie) o ancora preparate le pagine su un computer esterno con un editor a vostra scelta e le tra­sfe­ri­te dopo sul web server tramite un client SFTP, come FileZilla, WinSCP, PuTTY o OpenSSH. Potete mo­di­fi­ca­re le im­po­sta­zio­ni del web server Apache dal file di con­fi­gu­ra­zio­ne .htaccess. Qui create ad esempio una pagina di errore 404 per­so­na­liz­za­ta per il vostro sito o impostate un rein­di­riz­za­men­to ad un altro dominio. In questo articolo vi pre­sen­tia­mo i 10 trucchi più utili da rea­liz­za­re tramite .htaccess. L’utilizzo del Raspberry Pi come web server vi permette in pochi passaggi di creare delle pagine web, ma anche di imparare e provare ad am­mi­ni­stra­re un web server. Oltre che per gestire un sito, un web server può essere uti­liz­za­to per molti altri scopi. Così è possibile usare il web server del Raspberry Pi come file server o media server privato o potete anche im­po­star­vi un Cloud con il software libero ownCloud e gestirlo. Il programma di con­di­vi­sio­ne dei file vi consente, tra l’altro, di creare file nel Cloud, di aprirli e di sin­cro­niz­zar­li. La lista dei progetti rea­liz­za­bi­le con un web server sul Raspberry Pi è lunga: con il vostro web server potete ora fare quello che volete e rea­liz­za­re tutto quello che più de­si­de­ra­te.

Sicurezza del web server

Si­cu­ra­men­te dovete prestare at­ten­zio­ne alla sicurezza del web server. So­prat­tut­to se un server è co­stan­te­men­te collegato in rete, è probabile che prima o poi subisca degli attacchi. Perciò è ob­bli­ga­to­rio premunire sempre il vostro web server con i nuovi update e non farli ac­cu­mu­la­re. So­prat­tut­to dovreste gestire i dati sensibili su un web server solo una volta sicuri di tutto quello a cui dovete prestare at­ten­zio­ne in cir­co­stan­ze simili.

Vai al menu prin­ci­pa­le