Utilizzare il Raspberry Pi come web server
Il single-board computer Raspberry Pi si può configurare in breve tempo per utilizzarlo come web server privato. Anche se le prestazioni risultano inferiori rispetto alle varianti commerciali, in alcuni ambiti è comunque utile impostare un proprio web server: per esempio nel caso in cui si voglia verificare il proprio sito in un ambiente di test e gestirlo autonomamente o qualora si vogliano amministrare per conto proprio i file e renderli disponibili su un Cloud. Nel nostro tutorial vi spieghiamo come configurare un pacchetto LAMP gratuito per il vostro web server su questo mini computer.
Cosa è possibile fare con un web server sul Raspberry Pi?
Se utilizzate un Raspberry Pi come web server, dovreste sapere che dispone di un hardware limitato. Le prestazioni del computer sono inferiori rispetto ad un comune web server, che viene messo a disposizione 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 visitatori. Spesso anche la poca banda larga della propria connessione Internet è un impedimento per l’utilizzo di un Raspberry Pi come server completo. Tuttavia, ci sono diversi campi di applicazione per un web server, gestito su un Raspberry Pi, per esempio è possibile utilizzarlo come home server con accesso ad Internet o impiegarlo in una rete aziendale. Su questo si possono testare le pagine web prima di metterle online o gestire completamente in autonomia piccoli siti con pochi visitatori. Inoltre potete anche creare un vostre Cloud configurare programmi per l’automazione della casa (controllo delle luci, dei termosifoni, ecc.). Un altro vantaggio si rileva con i costi di gestione bassi di un web server su Raspberry Pi, visto che richiede solamente una connessione ad Internet e la corrente, di cui in genere utilizza poco più di 5 watt. Anche se un web server rimane costantemente in funzione, i consumi non incideranno molto sulla bolletta. Inoltre i costi una tantum di configurazione dei componenti necessari sono anche facilmente prevedibili.
I requisiti per impostare un web server sul Raspberry Pi
Il web server presentato qui rappresenta solo una delle molti varianti per poter utilizzare un Raspberry Pi come web server. Oltre al mini computer sono anche necessarie:
- una scheda SD sul quale impostare il sistema operativo Raspbian;
- una connessione ad Internet, tramite cavo di rete (consigliato) o Wi-Fi;
- la corrente per il cavo micro USB.
La variante a maggior risparmio energetico si ottiene con un web server “headless”, cioè senza schermo e dispositivi di ingresso, a cui andrebbe configurato 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 smartphone o altri dispositivi e apportargli le modifiche necessarie. Se avete deciso di amministrare il server tramite SSH, inserite nel client l’indirizzo IPv4 del vostro Raspberry Pi per effettuare così il collegamento. Se non conoscete l’indirizzo IP del vostro Raspberry Pi, potete scoprirlo inserendo il comando hostname –I nel terminale (o in alternativa ifconfig). Se, invece, utilizzate il Raspberry Pi headless, trovate l’indirizzo da inserire sul vostro router, aprendo la pagina delle impostazioni 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 utilizzare il web server per realizzare un Cloud privato o altre applicazioni che hanno bisogno di uno spazio maggiore, dovreste ampliare la capacità di memoria. Quest’operazione è possibile facilmente utilizzando una pen drive o un hard disk esterno.
Rendere raggiungibile 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 raggiungibili allo stesso indirizzo IP. Generalmente un home server dispone di un indirizzo IP dinamico, che quindi cambia regolarmente (in genere ogni 24 ore) e impedisce così che il server sia raggiungibile 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 possibilità per gestire un server allo stesso indirizzo, cioè tramite DNS dinamico (DDNS). Ci sono sia servizi DDNS a pagamento che gratuiti. Qui registrate un nome di dominio e lo collegate con un computer o un router. Tramite un software viene assegnato sempre automaticamente un nome di dominio all’indirizzo IP attuale della vostra connessione Internet, così che il server rimanga continuamente accessibile online con lo stesso nome. Avete a disposizione anche un’altra opzione, qualora usiate un router Fritz!Box e vi connettiate ad Internet tramite questo: trovate maggiori informazioni su come configurare il DNS dinamico sul vostro router sulla pagina del produttore.
Impostare un web server con LAMP sul Raspberry Pi
Grazie a questo tutorial configurate la piattaforma 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 utilizzeremo quello già preinstallato sul dispositivo, Raspbian), un web server Apache, un database MySQL e il linguaggio di scripting PHP. Oltre al pacchetto LAMP, viene anche installato il programma per il database phpMyAdmin. Per prima cosa loggatevi nella console (terminale) del vostro Raspberry Pi. Prima di cominciare con la configurazione del pacchetto LAMP, dovreste aggiornare tutti i pacchetti già installati con questi comandi:
sudo apt-get update
sudo apt-get upgrade
Ora potete iniziare la configurazione dei singoli componenti LAMP. Nel tutorial vi guidiamo nei vari passaggi per mettere in evidenza i passi intermedi e per spiegarli meglio. Così verranno spiegate alcune relazioni importanti e mostrati alcuni test con i quali potete verificare il funzionamento dell’installazione.
Impostare Apache
L’installazione di un server Apache HTTP avviene velocemente. Basta un singolo comando per configurarlo e lo stesso vale anche per gli altri tre componenti della suite LAMP per il web server del Raspberry Pi. Per installare Apache 2, inserite nel terminale il seguente comando:
sudo apt-get install apache2
Per verificare se l’installazione è andata a buon fine, inserite l’indirizzo IP del Raspberry Pi nella barra degli indirizzi del vostro browser. Se Apache 2 è stato configurato correttamente, nel browser compare una pagina preimpostata 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 modificare e creare tutte le pagine che desiderate:
sudo nano /var/www/index.html
o
sudo nano /var/www/html/index.html
Una volta apportate le modifiche, dovreste poterle vedere dopo aver aggiornato la pagina nel browser.
Impostare il PHP
Ora installate PHP 5, in modo che il web server possa anche elaborare gli script PHP e non solo i file HTML, CSS e JavaScript:
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 corrispondente. Se così è, avete impostato il PHP correttamente sul vostro Raspberry Pi.
Impostare MySQL
Configurando MySQL, impostate il database del web server. Tramite il comando
sudo apt-get install php5-mysql mysql-server mysql-client
installate tutto il necessario. Subito dopo vi viene richiesto di scegliere una password di root per MySQL. Una volta effettuato questo passaggio e terminata la configurazione del database, finite l’installazione riavviando MySQL (tramite il comando sudo /etc/init.d/mysql restart) o il Raspberry Pi (tramite il comando sudo reboot).
Impostare phpMyAdmin
Per amministrare un database MySQL è possibile utilizzare phpMyAdmin. Con l’aiuto di questo software libero, gestite il database in modo facile tramite un’interfaccia utente grafica nel browser. Per l’installazione 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 installato il programma di gestione del database phpMyAdmin, procedete confermando. A questo punto dovete ancora scegliere una password per phpMyAdmin (può essere la stessa utilizzata per MySQL) e l’installazione sarà poi completata.
Infine dovete collegare l’appena installato phpMyAdmin con il web server Apache. Eseguite il seguente comando, tramite il quale potete modificare il file di configurazione apache2.conf dall’editor:
sudo nano /etc/apache2/apache2.conf
Ora posizionate il cursore alla fine del file di configurazione (per fare ciò potete anche premere insieme la combinazione di tasti “CTRL“ + “V“) e scrivete qui una nuova riga nel file:
Include /etc/phpmyadmin/apache.conf
Ora salvate le modifiche tramite le abbreviazioni di tastiera “CTRL“ + “O“ e chiudete il file di configurazione con “CTRL“ + “X“. Dopo riavviate il web server Apache inserendo il seguente comando nella console:
/etc/init.d/apache2 restart
Ora avete configurato il web server e potete anche amministrare il suo database direttamente dal browser tramite phpMyAdmin. Qui inserite nella barra degli indirizzi l’indirizzo IP del Raspberry Pi seguito da /phpmyadmin (192.168.X.X/phpmyadmin) 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 phpMyAdmin, creare database e tabelle o eliminarle, ma anche utilizzare altre funzioni.
Utilizzo del web server sul Raspberry Pi
Ora il vostro web server è configurato e pronto per l’uso. Potete ad esempio creare e gestire un sito, inserendo pagine HTML e PHP sul vostro web server. Create direttamente 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 trasferite dopo sul web server tramite un client SFTP, come FileZilla, WinSCP, PuTTY o OpenSSH. Potete modificare le impostazioni del web server Apache dal file di configurazione .htaccess. Qui create ad esempio una pagina di errore 404 personalizzata per il vostro sito o impostate un reindirizzamento ad un altro dominio. In questo articolo vi presentiamo i 10 trucchi più utili da realizzare 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 amministrare un web server. Oltre che per gestire un sito, un web server può essere utilizzato per molti altri scopi. Così è possibile usare il web server del Raspberry Pi come file server o media server privato o potete anche impostarvi un Cloud con il software libero ownCloud e gestirlo. Il programma di condivisione dei file vi consente, tra l’altro, di creare file nel Cloud, di aprirli e di sincronizzarli. La lista dei progetti realizzabile con un web server sul Raspberry Pi è lunga: con il vostro web server potete ora fare quello che volete e realizzare tutto quello che più desiderate.
Sicurezza del web server
Sicuramente dovete prestare attenzione alla sicurezza del web server. Soprattutto se un server è costantemente collegato in rete, è probabile che prima o poi subisca degli attacchi. Perciò è obbligatorio premunire sempre il vostro web server con i nuovi update e non farli accumulare. Soprattutto dovreste gestire i dati sensibili su un web server solo una volta sicuri di tutto quello a cui dovete prestare attenzione in circostanze simili.