Realizziamo un Web Server con il Raspberry Pi e WordPress
In questo articolo vedremo come creare un server LAMP (Linux, Apache, MySQL, PHP) sul Raspberry Pi e come configurarlo per funzionare come web server con WordPress.
COSA IMPARERETE
Seguendo le indicazioni presenti nell’articolo e realizzando il web server e il sito web con WordPress imparerete a:
- Installare il software sul vostro Raspberry Pi;
- Installare e configurare Apache, PHP e MySQL in modo tale da creare un web server LAMP;
- Scaricare WordPress ed eseguirlo come sito web locale sul vostro Raspberry Pi;
- 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 e una scheda SD da almeno 8Gb.
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 installiamo 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.xxx (o qualunque altro sia l’indirizzo del Pi) da un altro computer collegato alla rete.
Per trovare l’indirizzo IP del Raspberry Pi, digita da terminale il seguente comando:
hostname -I
Navigate alla pagina web di default, o con il Pi o con un qualunque altro dispositivo collegato alla rete, e dovreste vedere le informazioni in figura:
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 php -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 service 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 php-mysql -y
Riavviate Apache:
sudo service apache2 restart
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.
Navigate su /www/wwwroot/elettronicalarosa.it/, e scaricate WordPress in questa cartella. Dovrete inizialmente cancellare il contenuto della cartella (assicuratevi di non cancellare file per voi importanti prima di dare il comando rm);
cd /www/wwwroot/elettronicalarosa.it/
sudo rm *
Cambiate poi la ownership di questa cartella nell’utenza pi.
sudo chown pi: .
Scaricate WordPress usando wget:
sudo wget http://wordpress.org/latest.tar.gz
Estraete ora il tarball (il file compresso scaricato):
sudo tar xzf latest.tar.gz
Spostate i contenuti della cartella estratta (wordpress) nella directory corrente:
sudo mv wordpress/* .
Rimuovete la cartella (ora vuota) e il tarball:
sudo rm -rf wordpress latest.tar.gz
Eseguendo qui il comando ls oppure tree -L 1 potrete visualizzare i contenuti di 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
3 directories, 16 files
Questa è la sorgente di un’installazione di default di WordPress. I file modificati per personalizzare la vostra installazione appartengono alla cartella wp-content.
Cambiate l’ownership di tutti i file per dare accesso all’user di Apache:
sudo chown -R www-data: .
IMPOSTATE IL VOSTRO DATABASE WORDPRESS
Per avere un sito WordPress funzionante, occorre un database. Ci vengono incontro MySQL and MariaDB.
Avviate un’installazione sicura di MySQL tramite terminale:
sudo mysql_secure_installation
Ti verrà chiesto di inserire la password corrente dell’utente root
Enter current password for root (enter for none):
— premere Enter.
Digitare Y e premere Enter per Set root password?
.
Digitare una nuova password New password:
e premere Enter.
Importante: ricorda questa password per l’utente root, ne avrai bisogno dopo per configurare WordPress.
Digitare Y per Remove anonymous users
.
Digitare Y per Disallow root login remotely
.
Digitare Y per Remove test database and access to it
.
Digitare Y per Reload privilege tables now
.
Quando avrai finito, vedrai il messaggio All done!
e Thanks for using MariaDB!
.
Create il database WordPress
Avviate mysql
da terminale:
sudo mysql -uroot -p
Ora vi verrà richiesto di inserire la password dell’utente root che avete precedentemente creato.
Riceverai il seguente messaggio di benvenuto:Welcome to the MariaDB monitor
.
Create il database per l’installazione di WordPress in MariaDB [(none)]>
e inserire nel prompt:
create database wordpress;
wordpress indica il nome che volete dare al vostro database
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)
Note: inserire il nome del database dopoPRIVILEGES ON
e la la password dopoIDENTIFIED BY
.
GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
Per rendere effettivi i cambiamenti, aggiorniamo i privilegi al database:
FLUSH PRIVILEGES;
Uscire dal prompt di MariaDB con Ctrl + D.
CONFIGURAZIONE DI WORDPRESS
Dovete anzitutto reperire l’indirizzo IP del vostro Pi, per cui digitate da terminale il comando hostname -I.oppure navigare dal browser del vostro Pi usando http://localhost.
Dovreste vedere la pagina di configurazione di WordPress:
Selezionate la lingua e premete Continua.
Adesso vedrete la pagina di benvenuto:
Cliccate sul tasto Let’s go!.
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_
Cliccare su Submit per procedere e poi cliccare sul bottone Run the install.
SCHERMATA DI BENVENUTO
Ci siamo quasi.
Riempite 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.
Adesso fate il login con l’account appena creato http://localhost/wp-admin.
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.
Come fare il Log in su WordPress da un altro computer:
Per loggarsi da un altro computer, aprire il browser e digitate http://PI-IP-ADDRESS/wp-admin
, usando l’indirizzo IP del vostro Raspberry.
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.
E’ necessario abilitare la modalità rewrite
di Apache:
sudo a2enmod rewrite
E’ necessario anche dire al virtual host di consentire alle richieste di essere sovrascritte. Modifichiamo apache2.conf:
sudo nano /etc/apache2/apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Con questa:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Modifica la configurazione di Apache per il tuo virtual host:
sudo leafpad /etc/apache2/sites-available/000-default.conf
Aggiungi le seguenti linee dopo <VirtualHost *:80>
così come di seguito:
<VirtualHost *:80>
<Directory "/www/wwwroot/elettronicalarosa.it">
AllowOverride All
</Directory>
...
Salve ed esci.
Riavvia Apache con:
sudo service apache2 restart
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.
Grazie.
Hello There. I found your blog using msn. This is a really well written article. I will make sure to bookmark it and come back to read more of your useful information. Thanks for the post. I’ll certainly return.
Thanks very nice blog!
For newest news you have to pay a quick visit world-wide-web
and on world-wide-web I found this website as a best website for most recent updates.
I have read so many content concerning the blogger
lovers except this piece of writing is genuinely a nice piece of
writing, keep it up.
For hottest information you have to visit the web and
on web I found this web page as a most excellent site for newest updates.
You should take part in a contest for one of the most
useful websites on the net. I am going to highly recommend
this web site!
bookmarked!!, I love your website!
That is really attention-grabbing, You’re an excessively skilled blogger.
I’ve joined your rss feed and sit up for searching for extra of your magnificent post.
Also, I have shared your site in my social networks!
It’s an awesome article for all the internet viewers; they will get advantage from it I am sure.
It’s actually a nice and helpful piece of info. I
am happy that you just shared this useful info with us. Please stay us up to date like this.
Thanks for sharing.
I like the helpful info you provide for your articles.
I will bookmark your blog and test once more here regularly.
I’m quite sure I’ll be informed plenty of
new stuff proper here! Good luck for the following!
It’s a shame you don’t have a donate button! I’d most certainly donate to this excellent blog!
I guess for now i’ll settle for bookmarking and adding your RSS feed
to my Google account. I look forward to new updates and will talk
about this website with my Facebook group. Talk soon!
Good site you’ve got here.. It’s difficult to find high quality
writing like yours these days. I really appreciate
people like you! Take care!!
Hi there! I could have sworn I’ve been to this website before but after checking through some of the
post I realized it’s new to me. Nonetheless, I’m definitely delighted I found it and
I’ll be book-marking and checking back often!
This is really interesting, You are a very skilled blogger.
I have joined your feed and look forward to seeking more of your great post.
Also, I have shared your web site in my social networks!
Pretty great post. I just stumbled upon your blog and wished
to say that I have really enjoyed browsing your weblog posts.
After all I will be subscribing for your rss feed and
I hope you write again very soon!
Hey very interesting blog!
I’m really enjoying the design and layout of your website.
It’s a very easy on the eyes which makes it much more enjoyable for
me to come here and visit more often. Did you hire out a developer to create your theme?
Great work!
Thanks for the appreciation … I made the site all by myself … I will try to improve it more and more 😉
Excellent posts, Thanks!
Perfect… Thanks