Installare WordPress su derivate Debian

Sei finalmente riuscito a trovare il tempo di convertire quel vecchio desktop in un’installazione di Ubuntu o di un’altra distro Linux e ora vuoi provare a mettere su un tuo sito WordPress? Oppure devi configurare un server Nginx per il sito della tua azienda? Nessun problema: i passaggi necessari sono molto semplici e questa guida li riassume in maniera semplice e comprensibile.

Prima di iniziare

Prima di iniziare, accertati di disporre di un dispositivo che:

  • Sia connesso ad internet
  • Abbia un utente sudoer a tua disposizione
  • Abbia almeno 2Gb di spazio di archiviazione disponibile
  • Abbia almeno 1Gb di RAM

Inoltre, è importante che il tuo dispositivo abbia un utente non root da utilizzare per tutte le operazioni (utilizzare l’utente root è una cattiva abitudine perché ti lascia la possibilità di effettuare operazioni ristrette agli altri utenti, e possibilmente dannose, senza confermare tramite una password le tue intenzioni).

Nel caso il tuo utente fosse l’utente root, creane uno da utilizzare per questo tutorial con il comando e poi assegnagli i diritti di superutente

adduser nomeutente
usermod -aG sudo nomeutente

una volta lanciato, ti sarà chiesto di inserire una password (e poi di confermarla) da associare al nuovo utente.

Installazione di Nginx

Se il tuo dispositivo soddisfa i requisiti necessari per cominciare, è il momento di installare Nginx. Nginx è uno dei più importanti e diffusi webserver sulla piazza. Insieme al suo competitor principale, Apache2, copre la maggior parte dei siti web che puoi visitare (a Nginx è attestato il 34%, circa, dei server attivi).

sudo apt update
sudo apt install nginx -y

A questo punto, sarebbe opportuno aprire le porte del tuo firewall per le comunicazioni di Nginx con l’esterno. Se hai installato Ubuntu e non hai eseguito ulteriori configurazioni, questo passaggio non sarà necessario. In caso contrario, se hai installato un firewall, segui la guida fornita dal tuo firewall per aprire all’esterno la porta 80.

Controllare l’operatività di Nginx

Una volta installato Nginx e configurato correttamente il firewall (se necessario), è possibile controllare l’operatività del server Nginx con il seguente comando.

emiliodallatorre@Ubunt-Virtualbox:~$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-08-13 18:12:39 CEST; 22s ago
       Docs: man:nginx(8)
   Main PID: 1971 (nginx)
      Tasks: 2 (limit: 2314)
     Memory: 3.0M
     CGroup: /system.slice/nginx.service
             ├─1971 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─1972 nginx: worker process

Se questo servizio risulta essere stato caricato correttamente, sarà possibile connetterci al nostro nuovo server accedendo con un browser all’indirizzo IP della macchina, ovvero digitando “http://indirizzoip” nella barra degli indirizzi di un qualsiasi browser. Se tutto è stato configurato correttamente, dovremmo vedere nel nostro browser qualcosa di simile a questo.

La schermata di benvenuto di default per Nginx.

Installare PHP

Una volta installato Nginx, dobbiamo fare in maniera che il nostro server abbia la capacità di processare i dati di un database ed elaborarli per fornire il giusto supporto a WordPress. Dobbiamo, quindi, installare PHP, un linguaggio di programmazione server-side usato da molti siti web.

sudo apt update
sudo apt install php-fpm -y

Nota: Questa procedura operativa per installare PHP è valida per Nginx, ma potrebbe essere diversa nel caso di Apache2.

Controllare l’installazione di PHP

Per controllare se PHP è stato installato correttamente, si può utilizzare il seguente comando.

emiliodallatorre@Ubunt-Virtualbox:~$ systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-08-13 18:20:53 CEST; 1min 5s ago
       Docs: man:php-fpm7.4(8)
    Process: 10362 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/>
   Main PID: 10359 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2314)
     Memory: 6.7M
     CGroup: /system.slice/php7.4-fpm.service
             ├─10359 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─10360 php-fpm: pool www
             └─10361 php-fpm: pool www

Se l’output ottenuto è simile a questo, possiamo mettere online il nostro primo file PHP e testare se tutto sta funzionando correttamente.

Configurare Nginx per eseguire PHP

Per prima cosa occorre avvertire Nginx che è possibile interpretare file PHP. Per farlo, è sufficiente modificare il file /etc/nginx/sites-available/default con il proprio editor di testo preferito (io uso Vim, ma nano è analogo in termini di funzionalità).

Il contenuto del file dovrà essere sostituito completamente con quanto segue.

Una volta inserita questa nuova configurazione, sarà sufficiente riavviare Nginx per applicare le modifiche effettuate.

sudo service nginx restart

Nota: Come si può facilmente intuire, questa configurazione lascia molto spazio alle personalizzazioni (come l’uso di HTTPS e SSL). Rimando ad una futura guida una spiegazione più approfondita del tutto.

Testare la configurazione

A questo punto, potremo andare a modificare la radice del nostro sito web, ovvero la cartella che contiene tutti i file che andranno a costituire il tuo sito. Questa si trova in /var/www/html.

Accediamo a questa ed eliminiamo il file di default di Nginx: index.nginx-debian.html.

cd /var/www/html
sudo rm index.nginx-debian.html

Dopodiché, nuovamente con un editor di testo, potremo creare il file index.php ed inserire il contenuto della seguente Gist.

Il nostro feedback sarà, nuovamente, visitare il nostro sito. Ci aspettiamo di trovare una schermata simile alla seguente.

La schermata di default con le informazioni di PHP.

Installare e configurare MySQL

Arrivati a questo punto, possiamo procedere con una delle parti più complesse della procedura: l’installazione del database che starà dietro al nostro sito, MySQL.

In aggiunta a MySQL installeremo anche una serie di moduli MySQL che lo renderanno compatibile con WordPress e con particolari sue funzioni, come la gestione di immagini.

sudo apt install mysql-server \
                 php \
                 php-bcmath \
                 php-curl \
                 php-imagick \
                 php-intl \
                 php-json \
                 php-mbstring \
                 php-mysql \
                 php-xml \
                 ghostscript \
                 php-zip -y

Creare tavole ed utenti MySQL per WordPress

Installato WordPress, è il momento di organizzare le strutture su cui WordPress appoggerà il suo database. Per farlo, accediamo alla console di WordPress e poi diamo, nell’ordine, i seguenti comandi (sostituendo la password con una password scelta accuratamente e da non dimenticare!).

sudo mysql -u root
CREATE DATABASE wordpress;
CREATE USER wordpress@localhost IDENTIFIED BY '<la-tua-password>';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON wordpress.* TO wordpress@localhost;
FLUSH PRIVILEGES;
quit

Dopo questo passo, potremo passare all’installazione di WordPress vera e propria.

Installare WordPress

Arrivati a questo punto, è il momento di portare nel nostro server il codice sorgente di WordPress. Prima di tutto, cancelliamo i file nella nostra cartella di Nginx, e poi scarichiamo e decomprimiamo l’archivio dei sorgente di WordPress dal sito ufficiale.

Per farlo, ci sarà necessario curl, un potentissimo strumento di trasmissione di file tramite internet, disponibile per Linux.

sudo apt install curl -y
sudo rm /var/www/html/*
curl https://wordpress.org/latest.tar.gz | sudo tar zx -C /var/www/html
sudo mv /var/www/html/wordpress/* /var/www/html/
sudo rm -rf /var/www/html/wordpress
sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php

In questa maniera, abbiamo scaricato e decompresso l’archivio dei sorgenti di WordPress: mancano solo un paio di dettagli alla configurazione e avremo il nostro blog online!

Connettere WordPress al database

WordPress utilizza dei parametri crittografici che si basano su input randomici. Essi sono unici per ciascuna installazione e vanno configurati al primo avvio. Modifichiamo il file /var/www/html/wp-config.php sostituendo le righe

define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

Con quelle che questo sito genererà per noi.

Dopodiché, configuriamo WordPress per connettersi al nostro database con i comandi seguenti (sostituendo solo la nostra password di prima nel posto giusto).

sudo sed -i 's/database_name_here/wordpress/' /var/www/html/wp-config.php
sudo sed -i 's/username_here/wordpress/' /var/www/html/wp-config.php
sudo sed -i 's/password_here/<la-tua-password-di-prima>/' /var/www/html/wp-config.php

Il comando sed è uno stream editor di file per Linux.

L’ultimo passaggio sarà dare i corretti permessi ai file di WordPress, tramite il comando

sudo chown www-data:www-data -R /var/www/html/*
sudo usermod -a -G sudo $(whoami)
sudo chmod 766 -R /var/www/html

Dopodiché, sarà opportuno riavviare il server tramite sudo reboot.

Configurare il nostro nuovo sito WordPress

A questo punto, abbiamo finalmente installato WordPress: è il momento di accedere al nostro server e vedere se tutto funziona. Dovrebbe presentarsi una schermata come la seguente.

La schermata della configurazione iniziale di WordPress.

Se questo è ciò che vedi, complimenti!: hai appena installato WordPress sul tuo server Ubuntu. Da questo momento, potrai fare moltissime cose, specialmente in forza del grande controllo che hai sul server (non è un hosting “cieco” come quello che puoi acquistare da un grosso provider).

Fonti

Per scrivere questa guida, ho generosamente consultato Stack Overflow, la cui community ringrazio in toto; il sito ufficiale della distro Ubuntu e i siti di tutti i software menzionati.

Lascia un commento