Site icon Antonio Lamorgese

Come installare un server web su Raspberry Pi (Apache + PHP + MySQL)

server web su raspberry pi

C’è una domanda che ci viene spontanea ma che al tempo stesso esige una risposta: “perché utilizzare un Raspberry come server web, invece di utilizzare fornitori di servizi specializzati in web hosting?”. In questo articolo troverai una guida esaustiva all’installazione.
di Antonio Lamorgese

Dopo aver avviato per la prima volta il tuo Raspberry Pi, e terminata la fase di prima installazione del sistema operativo, hai tutto il necessario e, quindi, sei pronto per installare un server web su Raspberry Pi.

Perché un Raspberry Pi come server web?

Innanzitutto, c’è una domanda che ci viene spontanea ma che al tempo stesso esige una risposta: perché utilizzare un Raspberry come server web, invece di utilizzare fornitori di servizi specializzati in web hosting?”

Diciamo che, da un punto di vista puramente economico, dovresti sapere che i servizi di web hosting non essendo gratuiti, hanno un costo, che varia da provider a provider e che comunque ti vincolano a pagare, una quota fissa ogni mese o annualmente per la gestione di tutti i servizi correlati al tuo dominio. 

Questa quota può variare da qualche decina di euro all’anno a qualche centinaio di euro all’anno per la gestione di un dominio senza molte pretese.

A differenza del Raspberry che, avendo bisogno solo di una connessione a internet, ti mette nelle condizioni di modificare i tuoi servizi come desideri ad esempio: la dimensione del disco, l’hosting del Database, ecc., cosa che, generalmente, un provider di servizi web, non concede al proprietario del dominio ospitato.

È opportuno precisare che, tutti i provider di servizi web, hanno un servizio gratuito di helpdesk che mettono a disposizione degli utenti per le più disparate esigenze che man mano gli vengono esposte. Tra queste anche la configurazione di tutti gli aspetti riguardanti il tuo dominio.
Ma torniamo alla configurazione del nostro “Single Board Computer” così come viene chiamato in gergo tecnico il nostro Raspberry.

È opportune precisare che per supportare la multiutenza, funzionalità richiesta per un server web, dovresti utilizzare almeno un Raspberry Pi 4, con almeno 4 GB di RAM).

La domanda che ora potrebbe sorgerti è: come creare un server web su Raspeberry Pi? Cioè come faccio a installare un server web su Raspbian?


Leggi anche: come installare windows 10 su Raspberry Pi 4 e Pi 3


Cosa è Apache?

Per prima cosa installeremo Apache, Apache è un server web opensource.
Quando parliamo di un web server, spesso si pensa alla macchina o comunque a un hardware dalle caratteristiche particolari, ma questo termine si riferisce anche al software che permette alla macchina di analizzare le richieste dell’utente (in formato http), e di restituire il file corrispondente alla richiesta o un errore se il file non viene trovato o la query formulata in modo errato.

Al momento Apache risulta essere il server web più utilizzato dalla maggior parte dei provider, con una quota di mercato superior al 60%. 

Apache, inoltre, ha una propria licenza, utilizzata da molti altri progetti open source. Inoltre, l’uso massiccio di Apache, diventato ormai lo standard per i server web, insieme alla sua altissima popolarità, mette ogni sviluppatore web nelle condizioni di reperire documentazione, corsi e altri libri che si occupano del suo utilizzo e della sua sicurezza, spesso necessary allo sviluppo web e alla configurazione e gestione.

Sia per Raspberry Pi, sia per una macchina più generic come potrebbe essere anche un comunissimo pc, Apache è senz’altro una scelta eccellente, e le competenze che sarai in grado di acquisire sull’argomento ti saranno sempre utili.

Installazione di Apache

Prima di installare il server web, assicurati di avere una macchina aggiornata. Per fare questo dobbiamo possedere i diritti di amministrazione, questo perchè abbiamo la necessità di lanciare comandi con il prefisso sudo.

sudo apt update
sudo apt upgrade
sudo apt update

Una volta aggiornato il Raspberry Pi, installeremo il server Apache con questo comando.

sudo apt install apache2

È necessario quindi dare i diritti amministrativi a tutti i file di configurazione di Apache, questa operazione ti permetterà di gestire facilmente tutti i tuoi siti. A tale scopo, esegui i seguenti comandi:

sudo chown -R pi: www-data /var/www/html/
sudo chmod -R 770 /var/www/html/

Controlla se Apache web server funziona

Una volta completata l’installazione, possiamo verificare che Apache funzioni correttamente.

Per fare ciò è necessario provare ad accedere al Raspberry dalla porta 80, questa porta non essendo aperta verso l’esterno, dovrai fare questa operazione direttamente dal Raspberry stesso. 

Questo non ti deve preoccupare, in quanto l’operazione è molto semplice. Basta aprire il browser web installato su Raspberry e digitare, nella barra degli indirizzi il seguente indirizzo: “http://127.0.0.1”

A questo punto, dovresti ottenere una pagina con un messaggio indicante il corretto funzionamento del server web.

Se non hai a disposizione una interfaccia grafica sul tuo Raspbian, puoi usare SSH per connetterti al tuo Raspberry, tramite il seguente comando:

wget -O check_apache.html http://127.0.0.1

Questo comando salverà il codice HTML della pagina nel file “check_apache.html” nella directory corrente. A questo punto, devi solo leggere il file, prodotto, con il comando:

cat ./check_apache.html

Dalla lettura e visualizzazione di questo file, non è complicato capire se Apache funzioni correttamente o meno.

Apache, su tutti I sistemi Linux e Raspbian non fa eccezione, utilizza la directory “/var/www/html” come root del tuo server web. Ciò significa che quando chiami il tuo Raspberry sulla porta 80 (http), Apache cerca il file in “/var/www/html”.

Ad esempio, se chiami l’indirizzo “http://127.0.0.1/example.html”, Apache cercherà il file “example.html” nella directory “/var/www/html”.
Per aggiungere nuovi file, siti, ecc., Sarà necessario aggiungerli a questa directory.

Ora puoi utilizzare il tuo Raspberry per creare un sito in HTML, CSS e JavaScript, ed effettuare le tue prime prove.

Tuttavia, per consentire all’utente di interagire con le tue pagine web, ad esempio, per dare la possibilità all’utente di registrarsi, ecc. avrai bisogno di PHP.

Installazione di PHP sul tuo Raspberry Pi, Cosa è PHP?

Prima di tutto, dovresti sapere che PHP è un linguaggio interpretato. E come molti altri tools nel mondo dello sviluppo del software, l’acronimo PHP può avere diversi significati. Infatti, quando parliamo di PHP, possiamo parlare sia del linguaggio che dell’interprete stesso dei comandi di questo fantastico linguaggio. Qui, quando parliamo di installazione di PHP, significa che installeremo l’interprete, per poter utilizzare il linguaggio.

PHP (e questa volta mi riferisco al linguaggio di programmazione) è principalmente utilizzato per rendere dinamico un sito, vale a dire che l’utente invia informazioni al server che restituisce i risultati modificati in base all’elaborazione di queste informazioni

Al contrario, un sito statico non si adatta alle informazioni fornite da un utente. Il suo contenuto viene salvato nel file, in fase di sviluppo, pertanto la sua elaborazione da parte del server web, fornirà sempre lo stesso risultato.

PHP è gratuito e mantenuto dalla PHP Foundation, così come da Zend Enterprise e da varie altre società (va precisato che Zend è anche l’autore del famoso framework Zend PHP, ampiamente utilizzato e riconosciuto nel mondo dello “sviluppo web”).

È uno dei framework per lo sviluppo web più utilizzati in ambito di sviluppo di siti web interattivi, con una quota di mercato di circa il 79%.

Anche in questo caso, tutte le competenze che puoi acquisire, sul linguaggio, o sull’installazione e configurazione dell’interprete, ti saranno sempre utili in futuro. 

Quindi non posso che consigliarti di imparare il PHP, che è davvero un linguaggio meraviglioso e troppo spesso sottovalutato.

Come installare PHP

Useremo di nuovo la riga di comando. Digita questo commando, da terminale, e il gioco è fatto:

sudo apt install php php-mbstring

Controlla se PHP funziona

Per sapere se PHP funziona correttamente, non è molto complicato e il metodo è abbastanza simile a quello utilizzato per Apache.

Elimina prima il file “index.html” nella directory “/var/www/html”, con questo commando:

sudo rm /var/www/html/index.html

Adesso crea un file “index.php” in questa directory, con questa riga di comando:

echo "<? php phpinfo ();?>"> /var/www/html/index.php

Da qui, l’operazione è la stessa effettuata per Apache. Accedere alla tua pagina e dovresti avere un risultato simile a quanto raffigurato nell’immagine.

Un altro pò di pazienza e abbiamo finite. A questo punto ci serve un database MySQL per il tuo server web. Vediamo come installarlo.

Che cosa è MySQL?

Ora che abbiamo installato PHP, probabilmente vorrai memorizzare le tue informazioni da utilizzare nei tuoi siti web. A tale scopo, vengono utilizzati i database.


Installeremo quindi un DBMS (Database Management System), ovvero MySQL.

MySQL è un DBMS gratuito, potente e ampiamente utilizzato, con una quota di mercato pari a circa il 56%. 

Anche in questo caso, MySQL è essenziale per lo sviluppo, tanto che, qualunque sia il linguaggio di programmazione utilizzato, devi assolutamente conoscere e imparare a gestire.

Come installare MySQL

Per fare questo, installeremo mariadb-server e php-mysql (che fungerà da collegamento tra php e mysql), con questo commando:

sudo apt installa mariadb-server php-mysql

Verifica che MySQL funzioni correttamente

Per verificare il funzionamento di MySQL, questa volta useremo solo la riga di comando. Quindi, ci collegheremo semplicemente tramite il comando:

sudo mysql --user = root

Non elimineremo l’utente root mysql predefinito ma creeremo un nuovo utente root mysql, perché quello predefinito può essere utilizzato solo con l’account root di Linux e quindi non è disponibile per il server web e gli script php. Per fare ciò, una volta connesso a MySQL, esegui semplicemente questi comandi (sostituisci password con la password che desideri):

DROP USER 'root' @ 'localhost';
CREATE USER 'root' @ 'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *. * TO 'root' @ 'localhost' WITH GRANT OPTION;

Quindi ora hai un server web, con PHP e MySQL integrati al suo interno, e per un server web è tutto ciò serve.

Da questo momento in avanti, sarai in grado di connetterti a mysql senza usare il commando amministrativo sudo, ma digitando direttamente da terminale il seguente codice:

mysql --user=root –password=miaMysqlPassword

Aggiungi PHPMyAdmin

L’installazione di PHPMyAdmin non è assolutamente necessaria. In questa installazione, non ci occuperemo di alcuna impostazione di sicurezza speciale!

L’installazione di PHPMyAdmin è piuttosto semplice e veloce, dobbiamo semplicemente usare il packet manager con questo comando:

sudo apt install phpmyadmin

La web application PHPMyAdmin ti sarà utile nel momento in cui dovrai gestire database e tabelle MySQL direttamente da interfaccia grafica e senza utilizzare alcuna riga di commando specifica. 

PhpMyAdmin è un tool assolutamente necessario in fase di sviluppo di siti web interattivi, capaci di leggere informazioni da banche dati.

Pertanto per accedere a questo applicativo da browser devi conoscere la password di accesso che è esattamente identica a quella impostata per MySQL.

È importante ricordarti che dovresti abilitare l’estensione mysqli usando questo comando:

sudo phpenmod mysqli
sudo /etc/init.d/apache2 restart

Leggi anche: come controllare i pin GPIO, di ingresso e uscita, del Raspberry, senza utilizzare un linguaggio di programmazione


Verifica che PHPMyAdmin funzioni correttamente

Per verificare che PHPMyAdmin funzioni, proveremo semplicemente ad accedervi, utilizzando l’indirizzo IP del tuo Raspberry seguito da /phpmyadmin. Ad esempio, localmente lo sarà http://127.0.0.1/phpmyadmin.

Se ricevi un errore, potrebbe essere perché PHPMyAdmin è stato installato in una directory diversa da phpmyadmin. In tal caso, prova questo commando:

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Ora puoi accedere a PHPMyAdmin da Chromium, il browser predefinito installato su Raspbian, attraverso questo url: http://127.0.0.1/phpmyadmin

Rendere un server raggiungibile via web

Il tuo server web adesso è pronto ed è del tutto simile a quanto fornito dai vari provider web. Tuttavia, probabilmente non puoi raggiungerlo da Internet. Infatti, sarebbe necessario che il tuo modem reindirizzi le richieste al tuo Raspberry, utilizzando le porte corrette.
Per mettere in atto questi reindirizzamenti, dovresti dare un’occhiata a DynDNS e al port forwarding.

In questo video, ti viene fornita una rapida guida su come creare in casa un server web con il Raspberry Pi, su come sfruttarlo al massimo delle sue potenzialità e come esporlo su Internet.

Come creare un tuo proprio server web
Exit mobile version