Installare LAMP su Raspberry PI

In quei progetti dove diverse schede interagiscono tra loro, scambiandosi e memorizzando dati, potrebbe risultare utile avere un mini server (LAMP) per la memorizzazione e l’elaborazione dei dati. In questo caso niente di più flessibile di un computer embedded come una Raspberry PI.

Nel mio caso mi sono trovato a realizzare un sistema composto da diverse schede Arduino MKRZero + MKR ETH che acquisiscono dati da dei sensori analogici. Questi dati invece di essere memorizzati su scheda SD ho deciso di inviarli ad un database locale, dato che le schede sono collegate alla stessa lan. Per limitare i costi ho inserito un Raspberry PI configurato come server LAMP (Linux + Apache + Mysql + Php).

In questo articolo vediamo come installare tutto il necessario per creare un server LAMP con Raspberry PI seguendo questi 5 passi:

  1. Installare server web apache
  2. Installare motore PHP
  3. Installare database relazionale Mysql (MAriaDB)
  4. Installare software di gestione PhpMyAdmin
  5. Configurare utenti e privilegi

1. Installare Apache

Il server Apache permette di avere un server HTTP locale capace di elaborare le richieste dei client collegati alla stessa rete. Per l’installazione si utilizza il commando seguente :

sudo apt-get install apache2

Premiamo invio e alla richiesta di continuare digitiamo S e nuovamente invio

Terminata l’installazione digitiamo il seguente comando per leggere l’indirizzo ip della scheda Raspberry PI

hostname -I

premendo invio verrà visualizzato l’ip assegnato alla scheda.

apriamo il browser su un pc della stessa rete e digitiamo nella barra degli indirizzi l’ip della scheda. Se il server apache è stato installato correttamente dovreste visualizzare una schermata come la seguente:

2. Installare PHP

Il passo successivo è quello di installare il motore PHP che permetterà di eseguire tutti gli script php contenuti nelle pagine web. Digitiamo il seguente comando:

sudo apt-get install php

premiamo invio, confermiamo l’installazione digitando S e nuovamente invio.

Terminata l’installazione procediamo a verificare che il motore php sia stato installato correttamente. Portiamoci sulla directory seguente:

cd /var/www/html/

elenchiamo ora i file presenti nella cartella con il comando:

ls -l

dovrebbe esserci un solo file, index.html. rimuoviamolo con il seguente comando

sudo rm index.html

Ora utilizzando un editor di testo creiamo una nuova pagina , index.php, eseguendo questo comando

sudo nano index.php

Premiamo invio e digitiamo nel’editor di testo nano la seguente istruzione

<?php echo(phpinfo()) ?>

Per salvare il file index.php premiamo sulla tastiera i tasti CTRL+O e per uscire i tasti CRTL+X

nuovamente eseguiamo un elenco dei files contenuti nella cartella html con il comando:

ls -l

dovremmo avere un solo file, index.php:

dal browser precedentemente aperto ricarichiamo la pagina (oppure digitiamo nuovamente l’ip della scheda Raspberry) e se tutto sta girando correttamente dovremmo visualizzare le informazioni relative al motore php, come di seguito:

Se il server web non risponde potremmo provare a riavviarlo digitando questo comando:

sudo service apache2 restart

3. Installare MySQL

Mysql è un RDBMS molto diffuso in ambiente web. Sviluppato come progetto open source è poi stato acquisito da Oracle. Attualmente è disponibile sotto licenza GNU e anche commerciale. Nel nostro Raspberry installeremo mariaDB un progetto totalmente open che si basa sul codice sorgente di MySql. Per eseguire l’installazione digitiamo il seguente comadndo:

sudo apt-get install mariadb-server

confermiamo digitando S e premendo invio

4. Installate PhpMyAdmin (opzionale)

Se siete arrivati fin qui la parte server è stata installata correttamente. Ora possiamo installare un software scritto in php che permette di interagire con il server MySql, tramite una comoda interfaccia web. Eseguiamo quindi il seguente comando per avviare l’installazione e la configurazione di PhpMyAdmin:

sudo apt-get install phpmyadmin

Confermiamo digitando S e premendo invio per avviare il download del software e la sua installazione.

Dopo qualche istante ci viene richiesto di selezionare il server web installato sul Raspberry in modo tale che phpmyadmin esegua le sue configurazioni. Selezioniamo con la barra spaziatrice la voce apache2, con il tasto tab ci spostiamo sul pulsante <ok>. Premiamo invio per continuare:

Successivamente viene mostrata una nuova finestra per poter configurare il database mysql. Selezioniamo il pulsante <Sì> e premiamo invio:

Ora digitiamo una password per l’utente phpmyadmin e premiamo invio:

ripetiamo digitando e confermando la password, continuiamo premendo invio:

dopo qualche istante l’installazione terminerà.

Proviamo ora a verificare se l’installazione del software phpmyadmin è avvenuta con successo. Portiamoci nuovamente sul browser e digitiamo nella barra degli indirizzi il seguente link

[ip raspberry]/phpmyadmin

dovremmo visualizzare la schermata di login come segue:

phpmyadmin login

digitiamo come nome utente phpmyadmin e come password quella inserita nella procedura guidata per eseguire l’accesso all’interfaccia web.

l’utente phpmyadmin non ha privilegi che permettano la gestione dei databases. Nel prossimo passo provvederemo a creare un utente che possieda tutti i privilegi.

5. Creare un utente per gestire il database

I comandi seguenti servono a creare un utente con tutti i privilegi di amministrazione del database. In questo modo protremmo accedere tramite phpmyadmin per creare e gestire i nostri databases.

Il comando seguente permette di avviare la console mysql in modo tale da poter inviare comandi sql all’ RDBMS:

sudo mariadb

e premiamo invio:

ora creiamo un utente, nel mio caso con nome marco, tra apici inseriamo anche una password:

CREATE USER marco@localhost IDENTIFIED BY 'inserisci la tua password';

ricordati di terminate la stringa sql con il simbolo di punto e virgola. Premiamo invio per per eseguire la query:

ora l’utente marco è stato creato ma come l’utente phpmyadmin non ha nessun privilegio e non puo effettuare nessuna operazione. Assegniamo quindi a questo utente tutti i privilegi eseguendo questa query:

GRANT ALL PRIVILEGES ON *.* TO marco@localhost;

premiamo invio per eseguire la query:

usciamo dal dal database eseguendo il seguente comando:

exit;

riavviamo il servizio mysql eseguendo il seguente comando

sudo service mysql restart

Conclusioni

Utilizzando un Raspberry PI dal costo contenuto è possibile creare un hub di rete capace di eseguire un server LAMP con adeguate prestazioni. In questo modo è possibile integrare un sistema di schede che piuttosto che memorizzare i dati in una propria memoria può invece inviare i dati su un database relazionale con tutti i vantaggi che ne derivano.