
In questo articolo vedremo come creare uno stack LAMP (Linux, Apache, MySQL, PHP) sul vostro Raspberry Pi e come configurarlo per funzionare come web server. Dovrete scaricare e installare WordPress e realizzare un sito web di base al quale si possa accedere da qualunque dispositivo presente sulla stessa rete del vostro Pi.
Cosa imparerete
Seguendo le indicazioni presenti nell'articolo e realizzando il web server e il sito web con WordPress imparerete:
- come installare il software sul vostro Raspberry Pi;
- come installare e configurare Apache, PHP e MySQL in modo tale da creare un web server LAMP;
- come scaricare WordPress ed eseguirlo come sito web locale sul vostro Raspberry Pi;
- come configurare WordPress e rendere il vostro sito web accessibile agli altri dispositivi connessi alla vostra rete.
Di cosa avete bisogno
Dal punto di vista hardware non ci sono particolari requisiti: è sufficiente disporre della scheda Raspberry Pi con le periferiche di base.
Per quanto riguarda il software, è sufficiente una distribuzione aggiornata di Raspbian su scheda SD. Per ottenere maggiori informazioni in merito, potete fare riferimento a questa guida su come aggiornare Raspbian.
Apache web server
Apache è un web server molto popolare che può essere installato sul Raspberry Pi per gestire le richieste di pagine web. Di per sè, Apache è già in grado di servire file HTML su HTTP, ma con moduli addizionali può anche servire pagine web dinamiche utilizzando linguaggi di scripting come il PHP.
Installazione di Apache
Anzitutto installate il package apache2 digitando sul terminale il seguente comando:
sudo apt-get install apache2 -y
Test del Web Server
Di default, Apache mette un file HTML di test nella cartella web. Questa pagina web di default viene servita quando si naviga all'indirizzo http://localhost/ sul Pi stesso, oppure all'indirizzo http://192.168.1.10 (o qualunque altro sia l'indirizzo del Pi) da un altro computer collegato alla rete. Per scoprire l'indirizzo IP del Pi, digitate hostname -I d
alla command line (se lo desiderate, potete approfondire l'argomento relativo al reperimento del vostro indirizzo IP).
Navigate alla pagina web di default, o con il Pi o con un qualunque altro dispositivo collegato alla rete, e dovreste vedere le informazioni di figura 1.
PHP è un preprocessore; è in sostanza il codice eseguito quando il server riceve una richiesta di pagina web. PHP recupera le informazioni da visualizzare sulla pagina, e invia la pagina al browser. A differenza delle pagine HTML statiche, PHP può visualizzare contenuti differenti al verificarsi di determinate circostanze. Esistono altri linguaggi in grado di eseguire questa operazione, ma poichè WordPress è scritto in PHP, questo è proprio quello di cui abbiamo bisogno. PHP è molto popolare sul web; progetti di grandi dimensioni come Facebook e Wikipedia sono ad esempio scritti in PHP.
Installate i package PHP e Apache con il seguente comando:
sudo apt-get install php5 libapache2-mod-php5 -y
Testiamo PHP
Creiamo il file index.php:
sudo nano index.php
Aggiungiamo qualche istruzione PHP al suo interno:
<?php echo "hello world"; ?>
Salviamo ora il file. Cancelliamo poi index.html in quanto esso ha precedenza su index.php:
sudo rm index.html
Facciamo un refresh nel browser. Dovremmo vedere "hello world". Non si tratta di un contenuto dinamico, ma è servito comunque da PHP. Se vedete il codice PHP invece di "hello world", ricaricate e riavviate Apache con i comandi:
sudo /etc/init.d/apache2 reload
sudo /etc/init.d/apache2 restart
Potete anche provare dei contenuti dinamici, come ad esempio:
<?php echo date('Y-m-d H:i:s'); ?>
Oppure visualizzare le info relative a PHP:
<?php phpinfo();
?>
Installazione di MySQL
MySQL è un popolare engine per database. Come PHP, la sua diffusa presenza sul web ne ha aumentato la popolarità. Questo è il motivo per cui progetti come WordPress lo utilizzano, e per cui questi progetti sono così popolari.
Installate i pacchetti MySQL Server e PHP-MySQL inserendo nel terminale i seguenti comandi:
sudo apt-get install mysql-server php5-mysql -y
Dopo aver installato MySQL vi verrà chiesta la password di root. Dovrete ricordarvela, per permettere al vostro sito di accedere al database.
Download di WordPress
Potete scaricare WordPress da wordpress.org utilizzando il comando wget. Fortunatamente, una copia dell'ultima versione di WordPress è sempre disponibile agli indirizzi wordpress.org/latest.tar.gz e wordpress.org/latest.zip. Al momento della scrittura di questo articolo, l'ultima versione disponibile era la 4.0.
Navigate su /var/www/html/, e scaricate WordPress in questa cartella. Dovrete inizialmente svuotare il contenuto della cartella (assicuratevi di non cancellare file per voi importanti prima di dare il comando rm); cambiate poi la ownership di questa cartella nell'utenza pi.
cd /var/www/html/
sudo chown pi: .
sudo rm *
wget http://wordpress.org/latest.tar.gz
Estraete ora il tarball, spostate i contenuti della cartella estratta (wordpress) nella directory corrente e rimuovete la cartella (ora vuota) e il tarball:
tar xzf latest.tar.gz
mv wordpress/* .
rm -rf wordpress latest.tar.gz
Eseguendo qui il comando ls oppure (tree -L 1) potrete visualizzare i contenuti di un progetto WordPress:
.
├── index.php
├── license.txt
├── readme.html
├── wp-activate.php
├── wp-admin
├── wp-blog-header.php
├── wp-comments-post.php
├── wp-config-sample.php
├── wp-content
├── wp-cron.php
├── wp-includes
├── wp-links-opml.php
├── wp-load.php
├── wp-login.php
├── wp-mail.php
├── wp-settings.php
├── wp-signup.php
├── wp-trackback.php
└── xmlrpc.php
Questa è la sorgente di un'installazione di default di WordPress. I file modificati per personalizzare la vostra installazione appartengono alla cartella wp-content.
Impostate il vostro database WordPress
Per avere un sito WordPress funzionante, occorre un database. Eseguite il comando mysql nel terminale e inserite le vostre credenziali di login (ad esempio username root, password password):
mysql -uroot -ppassword
Qui ho fornito la mia password (la parola password) direttamente sulla command line; non c'è alcun spazio tra -p e la password.
Alternativamtente potete fornire una flag -p vuota e attendere che vi venga richiesta la password:
mysql -uroot -p
Ora vi verrà richiesto di inserire la password dell'utente root che avete precedentemente creato.
Una volta connessi a MySQL, potete creare il database che la vostra installazione WordPress utilizzerà:
mysql> create database wordpress;
Notate il punto e virgola che chiude l'istruzione. Se tutto va bene dovreste vedere il seguente messaggio:
Query OK, 1 row affected (0.00 sec)
Uscite da MySQL digitando Ctrl + D.
Configurazione di WordPress
Dovete anzitutto reperire l'indirizzo IP del vostro Pi, per cui digitate da terminale il comando hostname -I. Navigate in http://YOUR-IP-ADDRESS e.g. http://192.168.1.5 nel browser del vostro Pi.
Dovreste vedere una pagina di errore di WordPress; perfetto! Cliccate sul tasto grande con la scritta Create a Configuration File seguito dal tasto Let's go! della pagina seguente.
Riempite ora le informazioni di base del sito come segue:
Database Name: wordpress
User Name: root
Password: <YOUR PASSWORD>
Database Host: localhost
Table Prefix: wp_
Dopo la corretta connessione al database, vi dovrebbero essere mostrati i contenuti del vostro file wp-config.php.
Copiate il testo, ritornate al terminale sul Pi e modificate il file con il comando nano wp-config.php. Incollate il testo in questo file, salvate e uscite con Ctrl + X, digitando poi Y per yes e premendo Enter (Figura 2).Cliccate ora il tasto Run the install.
Schermata di benvenuto
Ci siamo quasi.
Rimepite il modulo: date un titolo al vostro sito, create una username e password, inserite il vostro indirizzo email e togliete la spunta dalla casella search engine. Cliccate il tasto Install WordPress, poi fate il login con l'account appena creato (figura 3).Ora siete loggati e avete il vostro sito operativo, potete vedere il sito web digitando il vostro indirizzo IP nel browser sul Pi o su qualunque altro computer collegato alla stessa rete. Per fare nuovamente il login (oppure per loggarvi da un altro computer), andate all'indirizzo http://YOUR-IP-ADDRESS/wp-admin.
I permalink
E' consigliabile modificare le impostazioni permalink in modo tale da rendere gli URL più semplici. Per fare ciò, loggatevi a WordPress e andate sulla dashboard. Andate in Settings e poi in Permalinks. Selezionate l'opzione Post name e cliccate su Save Changes. Dopo aver salvato, vi verrà chiesto di aggiornare il vostro file .htaccess. Probabilmente non ne avrete ancora uno, per cui aggiungetelo in /var/www/html/ digitando nano .htaccess; notate come si tratti di un file nascosto, ed è questo il motivo per cui inizia con un punto. Incollate poi nel file i seguenti contenuti:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Salvate il file e ritornate alla homepage del sito. Cliccate sul titolo o sul ink della pagina di esempio e probabilmente vedrete la pagina di errore Not Found. Ciò avviene perchè il modulo rewrite non è stato abilitato in Apache. Per farlo, digitate sudo a2enmod rewrite.
Dovrete anche specificare il virtual host per permettere alle richieste di essere sovrascritte. Per fare ciò editate il file virtual host (con i permessi di root): sudo nano /etc/apache2/sites-available/default; inoltre, cambiate l'impostazione AllowOverride della riga 11 (all'interno del blocco <Directory /var/www/html/>) da None a All. Salvate il file e poi riavviate Apache con sudo service apache2 restart. Una volta riavviato, "rinfrescate" la pagina che dovrebbe essere correttamente caricata. Ora i post hanno URL del tipo /hello-world/ invece di /?p=123, e le pagine hanno URL come /sample-page/ invece di /?page_id=2.
Personalizzazione
WordPress ha un elevato livello di personalizzazione. Cliccando il nome del vostro sito nel banner WordPress nella parte alta dello schermo, verrete rediretti alla Dahboard. Da qui potete modificare il tema, aggiungere pagine e post, modificare il menu, aggiungere plugin e molto altro ancora.
Link
Link all'articolo originale: https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/

WordPress a mio modesto parere credo che sia uno dei principali tool per creare siti web. Il conubio fatto qui con Raspberry è veramente interessante con numerosi sbocchi applicativi.
Salve sono uno studente d’ingegneria informatica alle prese con la tesi.
devo realizzare il seguente prototipo: un badge che venga riconosciuto da un lettore di card rfid simulato con una scheda raspberry. Il lettore deve funzionare autonomamente in modo che se manca il collegamento si può ugualmente timbrare (dovrà avere un database autonomo con indicate tutte le persone autorizzate e le timbrature effettuate) . Il lettore deve inviare le letture ad un database gestito da un application server (apache – sql – Php). Il personale interno dovrà gestire tramite database il tutto. Autorizzare il budget da rilasciare, compilare i form degli utenti per rilasciare il budget essere in grado in qualsiasi momento, mediante una stampa, di verificare le persone presenti in ogni sito.
Ho pertanto letto l’articolo con grande interesse ed al più presto cercherò di metterlo in pratica. Volevo sapere se qualcuno ha gia provato a farlo e a tal proposito altri consigli in merito.
Grazie dell’attenzione
Giacomo
Io… lo faccio di lavoro 😀
X una configurazione più degna suggerire mariadb al posto di MySQL ed in più un bel php7 che male nn fa…