Installazione di WordPress

Condividi:

Questo articolo elenca i passaggi necessari all’installazione completa di un sito WordPress, da ora in poi abbreviato con WP, su una macchina debian linux.

I passaggi trattati i seguenti:

  1. Installazione del database Maria DB
  2. Installazione di Apache
  3. Creazione della cartella per il sito
  4. Creazione del virtual host del sito
  5. Installazione del certificato https
  6. Installazione di WP
  • Assimiamo che il dominio del sito sia già registrato presso un dns provider che punta al nostro server su cui installiamo il sito WP
  • Ogni volta che si dovrà inserire una password o il prefisso delle tabelle WP, si dà per scontato che la password venga generata attraverso uno degli innumerevoli siti che generano password sicure con maiuscole, minuscole, numeri e simboli
  • Le righe di codice che iniziano con # sono da eseguire in bash
  • Le righe di codice che iniziano con > sono da eseguire in maria db

Aggiorniamo il sistema
# apt update
# apt upgrade -y
Installiamo il database

Installiamo il database

# apt install -y mariadb-server

Controlliamo che il servizio di maria db giri solo sull’indirizzo localhost, non vogliamo un database esposto su internet

# netstat -tapn | grep :3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      xxxxx/mysqld

Il pacchetto maria db mette a disposizione uno script per attivare le impostazioni di base per un database di produzione, che permette di

  • Impostare la password di root
  • Rimuovere l’ utente anonimo
  • Disabilitare la login remota di root
  • Eliminare il db di test

Eseguiamo quindi lo script

# mysql_secure_installation

Ora colleghiamoci con l’utente root a mariadb

# mysql

Creiamo il DB per il sito

> create database nome_db;

Creiamo l’utente che verrà usato da WP per accedere al db

> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON nome_db.* TO utente_db@localhost IDENTIFIED BY 'password_utente_db' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
> EXIT;

Verifichiamo che l’utente riesca a collegarsi al db con la password impostata

# mysql -u utente_db -p nome_db
Installiamo il server web

Installiamo il servizio apache

# apt install -y apache2 php7.0 php7.0-mysql libapache2-mod-php7.0
# systemctl restart apache2

Verifichiamo che il server sia attivo

# netstat -tapn | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      xxxxx/apache2
Scarichiamo WP

Cerchiamo l’ultima versione sul sito di WP Italia dopodichè scarichiamo il .tar.gz

# cd /var/www
# wget https://it.wordpress.org/wordpress-5.0.3-it_IT.tar.gz
# tar -xzf wordpress-5.0.3-it_IT.tar.gz
# mv wordpress sito_wp
# chown -R www-data:www-data sito_wp/
Creiamo il virtual host

Creiamo il virtual host per un ipotetico sito sito_wp.esempio.com.
La direttiva ServerName deve essere impostata con il nome vero del dominio raggiungibile tramite dns

# cd /etc/apache2/sites-available
# cat > 001-sito_wp.conf <
    ServerName sito_wp.esempio.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/sito_wp
    
    ErrorLog ${APACHE_LOG_DIR}/sito_wp-error.log
    CustomLog ${APACHE_LOG_DIR}/sito_wp-access.log combined
    
    
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    

!

Abilitiamo il nuovo virtual host con a2ensite

# a2ensite 001-sito_wp

Eventualmente disabilitiamo il sito di default di apache

# a2dissite 000-default

Infine ricarichiamo apache

# systemctl reload apache2
Creiamo il certificato https

Per prima cosa abilitiamo il repository stretch-backports su apt

# cat > /etc/apt/sources.list.d/stretch-backports.list <

Ora installiamo certbot

# apt install -y certbot python-certbot-apache -t stretch-backports

Eseguiamo certbot, rispondendo ad alcune domande verrà creato il certificato https e installato in un nuovo virtual host che risponde alla porta 443 del nostro sito

# certbot --apache

Archiviamo e mettiamo al sicuro i file .pem come ci suggerisce il bot, poi attiviamo un job in crontab che ci rinnovi il certificato ogni 2 mesi. Il certificato ha una validità di 90 giorni ma viene automaticamente rinnovato da cron

Maggiori dettagli: Certificati HTTPS gratuiti con let's encrypt

Installiamo WP

Da browser web, carichiamo il sito https://sito_wp.esempio.com e seguiamo le istruzioni, sono richiesti alcuni parametri che sono quelli che abbiamo impostato in questo articolo

  • Nome database: nome_db
  • Nome utente: utente_db
  • Password: password_utente_db
  • Host del database: localhost
  • Prefisso tabella: Generiamo una sequenza di alcuni caratteri casuali

E' di importanza vitale per la sicurezza delle informazioni contenute nel sito, che il prefisso delle tabelle non sia quello di default wp_ e che non sia predicibile attraverso le informazioni ricavabili dal sito. Per questo, l'inserimento di una stringa contenete maiuscole, minuscole, numeri e simboli è la cosa ideale, come per la scelta delle password

Una volta verificato che il sito riesca a comunicare con il database, l'installazione può proseguire.

Le informazioni da inserire sono abbastanza chiare, io suggerisco di creare una sequenza casuale anche per il nome utente, perchè questo è l'utente amministratore ed è bene che non sia predicibile, come per la password.

Dopo aver fatto login, possiamo finalmente iniziare a configurare il sito, fare gli aggiornamenti, installare plugin, template ed inserire pagine ed articoli.