Iniziamo questa guida spiegando che cos’è WordPress. Come già spiegato in un precedente articolo, WordPress è un motore di sviluppo di “blog” e/o di “web-pages” che consente di far sviluppare tali piattaforme in totale autonomia (content management system –CMS-) ovvero senza necessariamente essere esperti sviluppatori. E’ Open Source, pertanto si può installare il programma liberamente in un server personale consentendo la distribuzione del proprio sito Internet / blog con tutti i relativi contenuti multimediali o testuali. Il linguaggio usato per lo sviluppo è il PHP e il database predefinito è il MySQL.

Il sistema operativo che andremo ad utilizzare è Ubuntu Server 16.04Nginx come WebServer di dialogo verso la rete e Database MariaDB.
Iniziamo aprendo la Bash Console (in questa guida si è scelto di usare GitBash perchè molto comoda, stabile e veloce) e inizializziamo una connessione SSH con il Server nel quale si vuole installare WordPress.

Una volta connessi al server useremo i seguenti comandi per installare le librerie necessarie:

Installazione Nginx

- sudo apt-get update
- sudo apt-get install -y nginx

Dopo aver installato nginx il successivo passo sarà quello di installare il Database SQL MariaDB.

Installazione e configurazione MariaDB

- sudo apt-get install -y mariadb-server

Dopo aver installato il pacchetto “mariadb-server” sarà necessario configurare l’utente e creare il database. Consiglio: è fondamentale per motivi di sicurezza non rendere accessibile il Database MariaDB a tutti gli IP, bensì autorizzare l’accesso SOLO tramite Localhost (127.0.0.1).

- sudo mysql -u root

Dopo esser stati autorizzati ad entrare nel pannello di controllo MariaDB tramite il precedente comando, andremo a creare e ad autorizzare gli accessi utente con i seguenti comandi:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('UNA_PASSWORD_A_SCELTA');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'password';
SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('UNA_PASSWORD_A_SCELTA');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
SELECT User, Host, Password FROM mysql.user;

L’ultima operazione sarà quella di creare il database:

CREATE DATABASE wordpress;
EXIT;

 Installazione PHP-FPM e relativi pacchetti

WordPress è programmato in Php, pertanto si dovranno installare nel server Ubuntu tutti i pacchetti e i moduli che permetteranno di far comunicare le pagine con webserver nginx ecc..

- sudo apt install -y php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-mcrypt php-ldap php-zip php-curl

Ora si dovrà verificare quale pacchetto php è stato installato. Una volta individuato, verranno apportate delle modifiche al php.ini

- cd /etc/php/

Verificare il nome della path all’interno (fondamentale anche per la configurazione di nginx). Dovrebbe essere 7.0 su ubuntu 16.04. Una volta individuata, eseguire il seguente comando:

- sudo nano /etc/php/7.0/cli/php.ini

Individuare i seguenti parametri nel file di configurazione e modificarne i relativi valori:

file_uploads = On
max_execution_time = 180
memory_limit = 256M
upload_max_filesize = 64M

Installazione dell’ultima versione di WordPress

Il passaggio successivo sarà quello di scaricare l’ultima versione di WordPress ed installarla all’interno di una path a scelta. In questo caso verrà utilizzata la Path /opt/

- cd /tmp && wget https://wordpress.org/latest.tar.gz
- tar -zxvf latest.tar.gz 
- sudo mv wordpress /opt/wordpress
- sudo rm /tmp/latest.tar.gz
- sudo chown -R vostro_utente:vostro_utente /opt/wordpress/
- sudo chown -R www-data:www-data /opt/wordpress/
- sudo chown -R 755 /opt/wordpress/

Ora che WordPress è installato nel server si dovrà modificare il file di configurazione inserendo tutte le credenziali utili, come ad esempio quelle di comunicazione con il Database MariaDb.

- sudo mv /opt/wordpress/wp-config-sample.php /opt/wordpress/wp-config.php
- sudo nano /opt/wordpress/wp-config.php

Tramite l’editor “nano” sarà visibile il file “wp-config.php”. Si dovranno modificare i seguenti parametri con quelli precedentemente memorizzati in Maria DB:

/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** MySQL database username */
define( 'DB_USER', 'root' );
/** MySQL database password */
define( 'DB_PASSWORD', 'UNA_PASSWORD_A_SCELTA' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

Dopo aver eseguito la corretta configurazione del file “wp-config.php”, WordPress è pronto. Ora sarà sufficiente configurare nginx.

Creazione e Configurazione del file wordpress.nginx.conf

Per creare e modificare il file “wordpress.nginx.conf” utilizzare i seguenti comandi:

- sudo nano /etc/nginx/conf.d/wordpress.nginx.conf

Tramite l’editor nano inserire la seguente configurazione:

server {
   root /opt/wordpress;
   server_name www.ilmioblogwp.it;
   access_log /var/log/nginx/wp_client_access.log;
   error_log /var/log/nginx/wp_client_error.log;
   index index.php index.html index.htm;

   location / {
      try_files $uri $uri/ /index.php?$args;
   }

   charset utf-8;
   
   location ~ .php$ {
      fastcgi_split_path_info ^(.+.php)(/.+)$;
      fastcgi_index index.php;
      fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; #Ubuntu 17.04
      include fastcgi_params;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }

   location = /robots.txt {
      allow all; 
      log_not_found off;
      access_log off;
   }

   listen 80;
}

Ora sarà necessario riavviare nginx

- sudo service nginx restart

Test del Blog

A questo punto é necessario verificare che il lavoro svolto fino a questo momento sia corretto e funzionante. Per fare ciò bisogna aprire il Browser preferito (in questo caso è stato utilizzato Chrome) e digitare sulla barra degli indirizzi il dominio acquistato per il blog.
Se tutte le configurazioni sono corrette si aprirà una pagina come la seguente:

Certificato SSL

Se tutto é andato tutto a buon fine, prima di configurare il blog WordPress è opportuno creare un certificato SSL tramite Let’s Encrypt. Per fare questo sarà sufficiente eseguire i seguenti comandi:

- sudo apt-get install -y software-properties-common
- sudo add-apt-repository ppa:certbot/certbot 
     Premere [ENTER] alla richiesta
- sudo apt-get update 
- sudo apt-get install -y python-certbot-nginx
- sudo certbot --nginx

Essendo la prima installazione verranno richiesti:
– una mail
– il consenso a procedere (A e Y)

Ora il Blog WordPress è pronto per la sua prima configurazione. Digitare sul Browser l’indirizzo e inserire tutti i dati che verranno richiesti