Installare Wordpress Lamp Su Ubuntu 22 04   Ottimizzazioni Vps  Guida Definitiva

Installare WordPress LAMP su Ubuntu 22.04 + Ottimizzazioni VPS (Guida Definitiva)

19Shares

Sei stanco delle limitazioni e delle prestazioni altalenanti dell’hosting condiviso? Ti senti come in un condominio sovraffollato, dove le azioni dei “vicini” influenzano il tuo sito? Forse è il momento di fare il salto di qualità e passare a un VPS (Virtual Private Server).

Molti pensano che sia un passo riservato solo agli esperti di sistemi, con costi proibitivi. In realtà, oggi esistono soluzioni VPS potenti e convenienti, spesso allo stesso prezzo di un buon hosting condiviso, che ti danno il pieno controllo e prestazioni dedicate per il tuo sito WordPress.

Certo, richiede un po’ più di lavoro iniziale rispetto a un hosting “pronto all’uso”, ma la libertà e le performance ripagano lo sforzo.

Questa guida è pensata proprio per te, per accompagnarti passo passo nel processo di configurazione di un ambiente ottimale per WordPress sul tuo nuovo VPS Ubuntu 22.04, utilizzando il collaudato stack LAMP: Linux, Apache (uno dei web server più diffusi e flessibili), MySQL (il database) e PHP (il linguaggio di WordPress).

Imparerai come installare WordPress LAMP e avere finalmente il tuo spazio dedicato, senza vicini rumorosi! Andremo oltre l’installazione base, coprendo anche la sicurezza, phpMyAdmin, HTTP/2 e le ottimizzazioni essenziali.

1. Introduzione a WordPress e LAMP

WordPress, uno dei sistemi di gestione dei contenuti (CMS) più popolari su Internet, consente agli utenti di creare blog e siti web flessibili utilizzando un backend MySQL con elaborazione PHP. WordPress è un’ottima scelta per mettere online un sito web in modo efficiente.

Dopo una configurazione iniziale, quasi tutta l’amministrazione dei siti web WordPress può essere eseguita tramite la sua interfaccia grafica.

In questo tutorial, ci concentreremo su come ottenere un’istanza di WordPress configurata su uno stack LAMP (Linux, Apache, MySQL e PHP) per un server Ubuntu 22.04. Imparare a installare WordPress LAMP ti darà solide basi.

2. Prerequisiti Fondamentali

Per completare questo tutorial, avrai bisogno dell’accesso a un server Ubuntu 22.04 (ad esempio, un VPS da provider come DigitalOcean, Vultr, Linode, Aruba Cloud, ecc.).

Per installare WordPress LAMP con successo sul tuo server, dovrai anche eseguire le seguenti attività prima di iniziare questo tutorial specifico:

  • Creare un utente sudo sul tuo server: I passaggi in questo tutorial utilizzano un utente non root con privilegi sudo. È una pratica fondamentale per la sicurezza.
  • Avere un nome di dominio registrato puntato all’IP pubblico del tuo VPS. Questo è necessario per configurare correttamente HTTPS con Let’s Encrypt.
  • Avere familiarità con la linea di comando Linux.

I passaggi che copriremo includono l’installazione dello stack LAMP e la protezione del sito con SSL.

3. Configurazione Iniziale del Server Ubuntu 22.04

Quando crei per la prima volta un nuovo server Ubuntu, dovresti eseguire alcuni importanti passaggi di configurazione come parte dell’impostazione iniziale.

Questi passaggi aumenteranno la sicurezza e l’usabilità del tuo server e ti daranno una solida base per le azioni successive.

3.1 Accesso come root

Per interagire con il tuo server VPS, dovrai stabilire una connessione sicura tramite SSH (Secure Shell).

Il metodo esatto e lo strumento da utilizzare dipendono dal tuo sistema operativo:

  • Su Windows: Lo strumento più comune e gratuito è PuTTY. Puoi scaricarlo dal sito ufficiale (https://www.putty.org/). Una volta scaricato e avviato, dovrai:
    • Inserire l’Indirizzo IP Pubblico del tuo server nel campo “Host Name (or IP address)“.
    • Assicurarti che la porta sia impostata su 22 (la porta standard per SSH).
    • Assicurarti che il tipo di connessione sia impostato su SSH.
    • (Opzionale ma consigliato per chiavi SSH): Se usi l’autenticazione tramite chiave SSH, vai su “Connection” » “SSH” » “Auth” » “Credentials” nel menu a sinistra e clicca su “Browse…” per selezionare il tuo file di chiave privata (.ppk).
    • Clicca su “Open” per avviare la connessione.
  • Su macOS o Linux: Non hai bisogno di installare software aggiuntivo. Puoi usare l’applicazione Terminale integrata.
    • Apri il Terminale e digita il seguente comando, sostituendo your_server_ip con l’indirizzo IP pubblico del tuo server:
      ssh root@your_server_ip
    • Se usi una chiave SSH con un percorso specifico, potresti doverla indicare con l’opzione -i:
      ssh -i /percorso/della/tua/chiave_privata root@your_server_ip

La Connessione:

Indipendentemente dallo strumento usato, la prima volta che ti connetti, potresti vedere un avviso sull’autenticità dell’host.

Questo è normale. Digita yes e premi ENTER per confermare e salvare l’impronta digitale del server.

Successivamente, ti verrà richiesto di autenticarti:

  • Se usi la password: Inserisci la password dell’utente root che ti è stata fornita dal tuo provider VPS (o che hai impostato). Nota che mentre digiti la password nel terminale/PuTTY, non vedrai caratteri apparire sullo schermo per motivi di sicurezza. Premi ENTER dopo averla digitata. Se è il primo accesso, potrebbe esserti richiesto di cambiare immediatamente la password.
  • Se usi una chiave SSH: Se la tua chiave non è protetta da passphrase, la connessione avverrà automaticamente. Se hai impostato una passphrase per la tua chiave privata, ti verrà richiesta ora. Inseriscila e premi ENTER.

Una volta autenticato con successo, vedrai il prompt dei comandi del tuo server, che indica che sei connesso come utente root.

Nota su root: L’utente root è l’utente amministrativo in un ambiente Linux con privilegi elevati. A causa dei privilegi elevati dell’account root, si sconsiglia di usarlo regolarmente. L’account root può apportare modifiche molto distruttive, anche per errore. Il passo successivo è configurare un nuovo account utente con privilegi ridotti per l’uso quotidiano.

3.2 Creazione di un Nuovo Utente

Una volta effettuato l’accesso come root, sarai in grado di aggiungere il nuovo account utente. In futuro, accederemo con questo nuovo account invece che con root.

Questo esempio crea un nuovo utente chiamato sammy, ma dovresti sostituirlo con un nome utente che preferisci:

adduser sammy

Ti verranno poste alcune domande, a partire dalla password dell’account. Inserisci una password complessa e, facoltativamente, compila eventuali informazioni aggiuntive che desideri.

Queste informazioni non sono richieste e puoi premere ENTER in qualsiasi campo che desideri saltare.

3.3 Concessione Privilegi Amministrativi (sudo)

Ora hai un nuovo account utente con privilegi di account regolari. Tuttavia, a volte avrai bisogno di eseguire attività amministrative.

Per evitare di dover sempre usare l’utente root, puoi concedere privilegi di superuser al tuo nuovo utente tramite il comando sudo.

Per aggiungere questi privilegi al tuo nuovo utente, aggiungilo al gruppo di sistema sudo.

Come root, esegui questo comando (sostituisci sammy con il tuo nuovo utente):

usermod -aG sudo sammy

Ora puoi anteporre sudo ai comandi per eseguirli con privilegi elevati quando sei loggato come il tuo utente regolare.

3.4 Impostazione del Firewall (UFW)

I server Ubuntu utilizzano UFW (Uncomplicated Firewall) per controllare le connessioni in entrata. Configuriamo le regole base. OpenSSH (per la connessione SSH) ha un profilo predefinito.

Verifica i profili disponibili:

ufw app list

Output atteso (minimo):

Available applications:
  OpenSSH

Consenti le connessioni SSH:

ufw allow OpenSSH

Abilita il firewall:

ufw enable

Digita y e premi ENTER per confermare.

Verifica lo stato:

ufw status

Output atteso:

Status: active

To                  Action    From
--                  ------    ----
OpenSSH             ALLOW     Anywhere
OpenSSH (v6)        ALLOW     Anywhere (v6)

Il firewall ora blocca tutto tranne SSH. Dovrai aggiungere regole per Nginx (HTTP/HTTPS) più avanti.

3.5 Abilitazione Accesso Esterno per l’Utente Regolare

Ora devi poter accedere direttamente con il tuo nuovo utente sudo (es. sammy).

  • Se l’account root usa autenticazione tramite password:
    Puoi già accedere con il nuovo utente via SSH:

    ssh sammy@your_server_ip

    Inserisci la password del nuovo utente.

  • Se l’account root usa autenticazione tramite chiave SSH:
    Devi copiare la chiave pubblica dal root al nuovo utente.
    Dalla sessione root ancora attiva, esegui (sostituisci sammy due volte):

    rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

    (Assicurati che ~/.ssh non abbia la barra finale).
    Ora puoi disconnetterti dalla sessione root e accedere con il nuovo utente da un nuovo terminale:

    ssh sammy@your_server_ip

Da questo punto in poi, esegui tutti i comandi come il tuo nuovo utente sudo (es. sammy), anteponendo sudo ai comandi che richiedono privilegi di amministratore. Disconnettiti dalla sessione root.

3.6 Imposta Aggiornamenti Automatici di Sicurezza (Consigliato)

Mantenere il sistema operativo aggiornato è cruciale per la sicurezza. Ubuntu offre un modo per installare automaticamente gli aggiornamenti di sicurezza.

Installa il pacchetto necessario:

sudo apt update
sudo apt install unattended-upgrades

Ora, abilita e configura gli aggiornamenti automatici eseguendo:

sudo dpkg-reconfigure --priority=low unattended-upgrades

Si aprirà un’interfaccia testuale. Seleziona <Yes> (o <Sì>) per abilitare gli aggiornamenti automatici e premi ENTER.

Questo aiuterà a mantenere il tuo server protetto senza intervento manuale per le patch di sicurezza critiche.

4. Installazione dello Stack LAMP (Apache, MySQL, PHP)

Lo stack software LAMP è un gruppo di software che può essere utilizzato per servire pagine web dinamiche e applicazioni web scritte in PHP.

Questo acronimo descrive un sistema operativo Linux, con un web server Nginx.

I dati di backend sono archiviati nel database MySQL e l’elaborazione dinamica è gestita da PHP.

Ora vedremo come installare Apache, MySQL e PHP, fondamentali per poter installare WordPress LAMP.

4.1 Installazione del Web Server Apache

Per visualizzare le pagine web ai visitatori del sito, utilizzerai Apache. Utilizzerai il gestore di pacchetti APT per ottenere questo software.

Poiché questa è la prima volta che usi apt per questa sessione, inizia aggiornando l’indice dei pacchetti del tuo server:

sudo apt update

Successivamente, esegui apt install per installare Apache:

sudo apt install apache2

Conferma l’installazione (Y). Una volta installato, Apache dovrebbe avviarsi automaticamente.

Abilita Apache nel Firewall (Solo HTTP per ora):

Il firewall UFW deve permettere il traffico web. Apache registra diversi profili con UFW. Controlliamoli:

sudo ufw app list

Vedrai un output simile a:

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH
  • Apache: Apre solo la porta 80 (traffico HTTP non crittografato).
  • Apache Full: Apre sia la porta 80 (HTTP) che la porta 443 (HTTPS).
  • Apache Secure: Apre solo la porta 443 (HTTPS).

Per ora, consentiamo solo il traffico HTTP. Abiliteremo HTTPS dopo aver installato Certbot.

sudo ufw allow 'Apache'
sudo ufw status # Verifica che 'Apache' sia ALLOW

Crea Struttura Base e Configurazione Virtual Host Minima (Prima di Certbot):

Questo passaggio prepara il terreno per Certbot e WordPress. Sostituisci your_domain con il tuo nome di dominio reale.

  1. Crea la directory web root:
    sudo mkdir -p /var/www/your_domain
  2. Assegna proprietà:
    sudo chown -R $USER:$USER /var/www/your_domain
  3. Crea il file di configurazione del Virtual Host minimo per Apache: Apache su Ubuntu utilizza file di configurazione in /etc/apache2/sites-available/. Creane uno per il tuo dominio:
    sudo nano /etc/apache2/sites-available/your_domain.conf

    Incolla questo contenuto base, sostituendo your_domain e www.your_domain:

    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName your_domain
        ServerAlias www.your_domain
        DocumentRoot /var/www/your_domain
        ErrorLog ${APACHE_LOG_DIR}/your_domain_error.log
        CustomLog ${APACHE_LOG_DIR}/your_domain_access.log combined
    </VirtualHost>

    Salva e chiudi (CTRL+X, Y, ENTER).

  4. Abilita il nuovo sito e disabilita quello predefinito:
    sudo a2ensite your_domain.conf
    sudo a2dissite 000-default.conf
  5. Testa la configurazione e ricarica Apache:
    sudo apache2ctl configtest

    Se l’output è Syntax OK, ricarica Apache:

    sudo systemctl reload apache2
  6. (Opzionale) Crea un file index.html di test:
    echo "<h1>Ciao Apache!</h1>" | sudo tee /var/www/your_domain/index.html

    Visita http://your_domain (o il tuo IP) nel browser. Dovresti vedere “Ciao Apache!“. Rimuovi il file dopo (sudo rm /var/www/your_domain/index.html).

4.2 Installare Certbot e Ottenere un Certificato SSL Let’s Encrypt (Fondamentale)

Ora proteggiamo il sito con HTTPS usando Let’s Encrypt e Certbot.

Passaggio 1: Installa Certbot e il Plugin Apache:

sudo apt update
sudo apt install certbot python3-certbot-apache

Passaggio 2: Ottieni il Certificato SSL:

Esegui Certbot specificando il plugin Apache e i tuoi domini (sostituisci):

sudo certbot --apache -d your_domain -d www.your_domain
  • --apache: Indica a Certbot di usare il plugin Apache per autenticare il dominio e modificare automaticamente la configurazione di Apache per usare il nuovo certificato.

Passaggio 3: Segui le Istruzioni:

  • Inserisci la tua email.
  • Accetta i Termini di Servizio.
  • Scegli se condividere l’email con EFF (opzionale).
  • Scegli se reindirizzare HTTP a HTTPS (Opzione 2, raccomandata).

Certbot configurerà Apache automaticamente e lo ricaricherà.

Passaggio 4: Aggiorna il Firewall per HTTPS:

sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache' # Rimuove la regola solo HTTP
sudo ufw status

Ora dovresti poter accedere a https://your_domain e vedere il lucchetto.

Passaggio 5: Verifica Rinnovo Automatico:

sudo certbot renew --dry-run

Se non ci sono errori, Certbot gestirà i rinnovi.

4.3 Installazione di MySQL

Ora che hai un web server funzionante, devi installare il sistema di database per archiviare e gestire i dati per il tuo sito.

MySQL è un popolare sistema di gestione di database utilizzato negli ambienti PHP.

Utilizza di nuovo apt:

sudo apt install mysql-server

Conferma l’installazione quando richiesto.

Al termine dell’installazione, si consiglia di eseguire uno script di sicurezza preinstallato con MySQL.

Questo script rimuoverà alcune impostazioni predefinite non sicure e bloccherà l’accesso al tuo sistema di database.

Avvia lo script interattivo eseguendo:

sudo mysql_secure_installation

Ti verrà chiesto se desideri configurare il VALIDATE PASSWORD PLUGIN.

Rispondi y (sì) o qualsiasi altra cosa per continuare senza abilitarlo. Se rispondi “sì”, ti verrà chiesto di selezionare un livello di convalida della password (0=BASSO, 1=MEDIO, 2=FORTE).

Successivamente, il server ti chiederà di selezionare e confermare una password per l’utente root di MySQL (questa è diversa dall’utente root del sistema).

Definisci una password robusta qui, anche se per impostazione predefinita l’accesso come root MySQL da console non la richiederà grazie all’autenticazione auth_socket.

Per il resto delle domande (rimuovere utenti anonimi, disabilitare login root remoto, rimuovere database di test, ricaricare tabelle privilegi), premi Y e ENTER ad ogni prompt.

Al termine, testa se riesci ad accedere alla console MySQL:

sudo mysql

Dovresti vedere il prompt mysql>.

Per uscire, digita:

exit

Nota sulla sicurezza e auth_socket: L’autenticazione auth_socket è sicura perché solo gli utenti di sistema con privilegi sudo possono accedere come root MySQL dalla console. Tuttavia, significa che non potrai usare l’utente root MySQL direttamente dalla tua applicazione PHP (come WordPress). Creeremo un utente dedicato per questo.

4.4 Installazione di PHP

Installiamo PHP e il modulo Apache per PHP, oltre al modulo MySQL per PHP (verifica la versione, es. 8.1):

sudo apt install php8.1 libapache2-mod-php8.1 php8.1-mysql

Dopo l’installazione, potrebbe essere necessario riavviare Apache per caricare il modulo PHP:

sudo systemctl restart apache2

4.5 Configurazione di Apache per Utilizzare PHP (Verifica e Moduli)

Apache, con libapache2-mod-php, è generalmente configurato per processare file PHP per impostazione predefinita dopo l’installazione del modulo. Tuttavia, è buona norma assicurarsi che dia priorità a index.php.

Modifica il file dir.conf per impostare index.php come prima scelta se non lo è già:

sudo nano /etc/apache2/mods-enabled/dir.conf

Assicurati che la linea DirectoryIndex assomigli a questa, con index.php per primo:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Salva e chiudi, poi riavvia Apache:

sudo systemctl restart apache2

Inoltre, per il corretto funzionamento dei permalink di WordPress, il modulo rewrite di Apache deve essere abilitato. Solitamente lo è per impostazione predefinita, ma puoi verificarlo e abilitarlo se necessario:

sudo a2enmod rewrite
sudo systemctl restart apache2

4.6 Test di PHP con Apache

Crea un file info.php per testare:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/your_domain/info.php

Visita https://your_domain/info.php (nota HTTPS). Dovresti vedere la pagina informativa di PHP.

Guida Definitiva Installare WordPress Lemp Su Ubuntu 22 04 Vps
Informazioni sul tuo server

Rimuovi il file dopo il test!

sudo rm /var/www/your_domain/info.php

4.7 Test Connessione Database da PHP (Opzionale)

Questo passaggio verifica che PHP possa connettersi a MySQL. Creeremo un database e un utente di test.

Connettiti alla console MySQL:

sudo mysql

Crea un database di test:

CREATE DATABASE test_database;

Crea un utente di test (sostituisci ‘password_sicura‘ con una password robusta) utilizzando mysql_native_password per compatibilità:

CREATE USER 'test_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password_sicura';

Concedi i privilegi a questo utente sul database di test:

GRANT ALL ON test_database.* TO 'test_user'@'localhost';

Esci da MySQL:

exit

Crea uno script PHP per testare la connessione:

sudo nano /var/www/your_domain/test_db.php

Incolla il seguente script, sostituendo test_user e password_sicura con le credenziali appena create:

<?php
$user = "test_user";
$password = "password_sicura";
$database = "test_database";
$table = "test_table";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>Connessione Riuscita!</h2><p>Proviamo a creare e interrogare una tabella...</p>";

  // Prova a creare una tabella (ignora l'errore se esiste già)
  $db->exec("CREATE TABLE IF NOT EXISTS $database.$table (
    id INT AUTO_INCREMENT,
    content VARCHAR(255),
    PRIMARY KEY(id)
  )");
  echo "<p>Tabella '$table' controllata/creata.</p>";

  // Prova a inserire dati
  $db->exec("INSERT INTO $database.$table (content) VALUES ('Test item " . rand() . "')");
  echo "<p>Riga inserita.</p>";

  // Prova a leggere i dati
  echo "<h3>Contenuto Tabella:</h3><ol>";
  foreach($db->query("SELECT content FROM $database.$table") as $row) {
    echo "<li>" . htmlspecialchars($row['content']) . "</li>"; // Aggiunto htmlspecialchars per sicurezza
  }
  echo "</ol>";

} catch (PDOException $e) {
  print "Errore!: " . $e->getMessage() . "<br/>";
  die();
}

Salva e chiudi.

Visita https://server_domain_or_IP/test_db.php nel tuo browser.

Se vedi “Connessione Riuscita!” e un elenco di elementi di test, la connessione PHP-MySQL funziona!

Ricorda di rimuovere questo file di test dopo la verifica:

sudo rm /var/www/your_domain/test_db.php

5. Installare WordPress LAMP: Passaggi Finali

Ora che il tuo stack LAMP è pronto e sicuro con SSL, possiamo finalmente installare WordPress LAMP.

5.1 Creazione database e utente MySQL per WordPress

WordPress ha bisogno del proprio database e utente.

Accedi a MySQL:

sudo mysql

Crea il database per WordPress (puoi chiamarlo diversamente se preferisci):

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Notautf8mb4 è raccomandato per un miglior supporto a caratteri internazionali ed emoji.

Crea un utente MySQL dedicato per WordPress (sostituisci 'password_wp_sicura' con una password robusta e unica):

CREATE USER 'wordpressuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password_wp_sicura';

Concedi tutti i privilegi a questo utente solo sul database WordPress:

GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';

Applica le modifiche ai privilegi:

FLUSH PRIVILEGES;

Esci da MySQL:

exit

5.2 Installare e Proteggere phpMyAdmin (Opzionale ma Utile)

phpMyAdmin è una popolare interfaccia web per gestire i database MySQL.

Installazione:

sudo apt update
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

Durante l’installazione:

  • Selezione Web Server: Ti chiederà quale web server riconfigurare automaticamente. Questa volta, seleziona apache2 premendo la barra spaziatrice (dovrebbe apparire un *) e poi TAB per <Ok> e ENTER.
  • Configurare database per phpmyadmin con dbconfig-common? Seleziona <Yes> e imposta le password richieste.

phpMyAdmin dovrebbe ora essere accessibile a https://your_domain/phpmyadmin.

Protezione di phpMyAdmin (FONDAMENTALE!):

L’accesso pubblico a phpMyAdmin è un rischio. Apache permette di proteggerlo facilmente con un file .htaccess.

  1. Crea un file .htaccess nella directory di phpMyAdmin. Solitamente è /usr/share/phpmyadmin/. Abilita prima la sovrascrittura per questa directory. Modifica la configurazione di Apache per phpMyAdmin (spesso in /etc/apache2/conf-available/phpmyadmin.conf):
    sudo nano /etc/apache2/conf-available/phpmyadmin.conf

    All’interno del blocco <Directory /usr/share/phpmyadmin>, aggiungi o modifica la direttiva AllowOverride in All:

    <Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All
        # ... altre direttive ...
    </Directory>

    Riavvia Apache: sudo systemctl restart apache2.

  2. Ora crea il file .htaccess e il file delle password:
    sudo nano /usr/share/phpmyadmin/.htaccess

    Incolla questo contenuto:

    AuthType Basic
    AuthName "Admin Login"
    AuthUserFile /etc/apache2/.phpmyadmin_passwd
    Require valid-user

    Salva e chiudi.

  3. Crea il file delle password (sostituisci TUO_NOME_UTENTE_HTTP):
    sudo htpasswd -c /etc/apache2/.phpmyadmin_passwd TUO_NOME_UTENTE_HTTP

    Ti chiederà di inserire e confermare una password.

Ora, visitando https://your_domain/phpmyadmin, ti verrà richiesto un nome utente e password HTTP prima della schermata di login di phpMyAdmin.

Per imparare a utilizzare efficacemente phpMyAdmin per operazioni comuni come backup, ottimizzazione e risoluzione problemi del database WordPress, consulta la nostra guida dedicata: Gestione database WordPress: Guida phpMyAdmin per principianti.

5.3 Installazione Estensioni PHP Aggiuntive

Installiamo estensioni comuni per WordPress (verifica versione PHP):

sudo apt update
sudo apt install php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-soap php8.1-xml php8.1-xmlrpc php8.1-zip php8.1-imagick

Riavvia Apache dopo aver installato nuove estensioni PHP:

sudo systemctl restart apache2

5.4 Configurazione .htaccess per Permalink WordPress

Perché i permalink “belli” di WordPress funzionino correttamente su Apache, il file .htaccess nella directory principale di WordPress deve contenere le regole appropriate.

WordPress cercherà di crearlo o modificarlo automaticamente, ma assicurati che la tua configurazione del Virtual Host (nel file /etc/apache2/sites-available/your_domain.conf) permetta le sovrascritture tramite .htaccess per la tua web root.

All’interno del blocco <VirtualHost *:443> (quello per HTTPS), assicurati che ci sia una sezione <Directory /var/www/your_domain> simile a questa:

<Directory /var/www/your_domain>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

La direttiva AllowOverride All è cruciale. Se hai apportato modifiche, riavvia Apache:

sudo systemctl restart apache2

5.5 Download di WordPress

Passiamo a una directory scrivibile (come /tmp) e scarichiamo l’ultima versione di WordPress:

cd /tmp
curl -LO https://it.wordpress.org/latest-it_IT.tar.gz # Scarica versione italiana

Estraiamo l’archivio:

tar xzvf latest-it_IT.tar.gz

5.6 Configurazione del file ‘wp-config.php’

WordPress ha bisogno di un file di configurazione wp-config.php per connettersi al database.

Creiamolo partendo dal file di esempio:

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Ora copiamo tutti i file di WordPress nella root del nostro sito (sostituisci your_domain):

sudo cp -a /tmp/wordpress/. /var/www/your_domain/

Assegniamo la proprietà dei file al web server (Apache solitamente gira come www-data su Ubuntu):

sudo chown -R www-data:www-data /var/www/your_domain/

Ora modifichiamo il file wp-config.php per inserire le credenziali del database e le chiavi di sicurezza.

Apriamolo:

sudo nano /var/www/your_domain/wp-config.php
  1. Credenziali Database: Trova le seguenti righe e sostituisci i valori segnaposto con il nome del database, l’utente e la password che hai creato al passaggio 5.1:
    define( 'DB_NAME', 'wordpress' );
    define( 'DB_USER', 'wordpressuser' );
    define( 'DB_PASSWORD', 'password_wp_sicura' );
    define( 'DB_HOST', 'localhost' ); // Solitamente localhost va bene
  2. Chiavi di Sicurezza e SALT: Trova la sezione con le chiavi segnaposto. Apri una nuova finestra del browser e visita https://api.wordpress.org/secret-key/1.1/salt/. Copia l’intero blocco di codice generato e sostituisci le righe segnaposto nel tuo wp-config.php con quelle appena copiate.
  3. Metodo Filesystem: Aggiungi questa riga sotto le impostazioni del database (o comunque prima di /* That's all... */) per evitare che WordPress chieda credenziali FTP per installare/aggiornare temi/plugin:
    define( 'FS_METHOD', 'direct' );

Salva e chiudi il file wp-config.php.

5.7 Completamento Installazione Tramite Interfaccia Web

Ora che la configurazione del server è completa, puoi terminare l’installazione tramite l’interfaccia web di WordPress.

Nel tuo browser, naviga verso il nome di dominio o l’IP pubblico del tuo server:

https://server_domain_or_IP

Se tutto è configurato correttamente, dovresti vedere la schermata di selezione della lingua di WordPress.

Guida Definitiva Installare WordPress Lemp Su Ubuntu 22 04 Vps
Selezione della lingua di WordPress

Seleziona l’Italiano e clicca Continua. Successivamente, arriverai alla pagina di configurazione principale.

Inserisci un titolo per il tuo sito WordPress, scegli un nome utente per l’amministratore (si consiglia di non usare “admin” per motivi di sicurezza), una password robusta (quella generata automaticamente è ottima, salvala!) e il tuo indirizzo email.

Scegli se scoraggiare o meno i motori di ricerca dall’indicizzare il sito (puoi cambiarlo dopo).

Guida Definitiva Installare WordPress Lemp Su Ubuntu 22 04 Vps
Installazione della configurazione di WordPress

Quando fai clic su “Installa WordPress“, verrai portato a una pagina che ti informa del successo dell’installazione e ti chiede di accedere.

Guida Definitiva Installare WordPress Lemp Su Ubuntu 22 04 Vps
Richiesta di accesso a WordPress

Una volta effettuato l’accesso con le credenziali appena create, verrai portato alla dashboard di amministrazione di WordPress.

Guida Definitiva Installare WordPress Lemp Su Ubuntu 22 04 Vps
Dashboard di WordPress

6. Ottimizzazioni Post-Installazione

Ora che WordPress è installato, vediamo alcune ottimizzazioni importanti per il tuo VPS con stack LAMP.

6.1 Abilitare HTTP/2 su Apache

HTTP/2 migliora le prestazioni e richiede HTTPS. Apache 2.4.26+ supporta HTTP/2 tramite il modulo mod_http2.

  1. Abilita il modulo HTTP/2 (se non già attivo):
    sudo a2enmod http2
  2. Modifica la configurazione SSL del tuo Virtual Host:
    Apri il file di configurazione del tuo sito per la porta 443 (quello modificato da Certbot, solitamente in /etc/apache2/sites-available/your_domain-le-ssl.conf):

    sudo nano /etc/apache2/sites-available/your_domain-le-ssl.conf

    All’interno del blocco <IfModule mod_ssl.c> <VirtualHost *:443> </VirtualHost> </IfModule>, aggiungi la direttiva Protocols all’inizio del blocco VirtualHost:

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
        Protocols h2 http/1.1
        ServerAdmin webmaster@localhost
        ServerName your_domain
        ServerAlias www.your_domain
        DocumentRoot /var/www/your_domain
        # ... altre direttive SSL e di log da Certbot ...
        # ... sezione <Directory> ...
    </VirtualHost>
    </IfModule>
    ``` `h2` abilita HTTP/2, `http/1.1` è il fallback per i client non compatibili.
  3. Salva, testa la configurazione e riavvia Apache:
    sudo apache2ctl configtest
    sudo systemctl restart apache2

    Verifica con gli strumenti del browser che il sito sia servito tramite HTTP/2 su HTTPS.

6.2 Bonus Essenziale: Ottimizzazioni Iniziali PHP e Apache

Indipendentemente dalla potenza del tuo VPS, alcuni aggiustamenti di base nei file di configurazione possono prevenire errori comuni e migliorare le prestazioni, specialmente sotto carico.

Non esagerare all’inizio, ma considera questi punti:

  • PHP (php.ini):
    • Il file php.ini principale si trova solitamente in /etc/php/8.1/fpm/php.ini (cambia 8.1 con la tua versione). Dopo averlo modificato, devi riavviare PHP-FPM (sudo systemctl restart php8.1-fpm).
    • memory_limit: Definisce la memoria massima che uno script PHP può consumare. Un valore troppo basso (es. 64M) può causare errori “Allowed memory size exhausted“. Aumentalo gradualmente se necessario (es. 128M, 256M, 512M), ma senza esagerare per non consumare tutta la RAM del server.
    • upload_max_filesize: La dimensione massima dei file caricabili tramite PHP (es. dalla libreria media di WordPress). Aumentalo se devi caricare file grandi (es. 64M).
    • post_max_size: La dimensione massima dei dati inviati tramite POST (include i file caricati). Deve essere uguale o maggiore di upload_max_filesize (es. 64M).
    • max_execution_time: Tempo massimo in secondi che uno script può impiegare prima di essere terminato. Potrebbe essere necessario aumentarlo (es. 60 o 120) per operazioni lunghe come importazioni o backup, ma attenzione a non impostarlo troppo alto.
    • Ricorda di riavviare Apache dopo le modifiche a php.ini: sudo systemctl restart apache2
  • Apache Globale (apache2.conf) e Moduli MPM:
    • Il file principale è /etc/apache2/apache2.conf.
    • Apache utilizza i Multi-Processing Modules (MPM) per gestire le richieste. Su Ubuntu, il predefinito è spesso mpm_event o mpm_prefork. mpm_event è generalmente più performante per gestire molte connessioni simultanee rispetto a mpm_prefork (che è più vecchio ma a volte necessario per codice PHP non thread-safe, anche se raro oggi).
    • Puoi controllare quale MPM è attivo con apache2ctl -V | grep -i mpm.
    • Le impostazioni di tuning specifiche (StartServers, MinSpareServers, MaxSpareServers, MaxRequestWorkers, ServerLimit) dipendono dall’MPM in uso e si trovano nei file di configurazione dell’MPM (es. /etc/apache2/mods-available/mpm_event.conf).
    • Non modificare questi valori a caso. Un tuning errato può peggiorare le prestazioni. Per iniziare, i valori predefiniti sono spesso sufficienti per un singolo sito. Se il tuo VPS ha molte risorse e traffico, potresti voler ricercare come ottimizzare l’MPM specifico in uso.
  • Apache Dominio (/etc/apache2/sites-available/your_domain.conf):
    • KeepAlive On: Assicurati che sia attivo (solitamente lo è per impostazione predefinita). Permette più richieste sulla stessa connessione TCP, riducendo la latenza.
    • MaxKeepAliveRequests: Numero di richieste per connessione Keep-Alive.
    • KeepAliveTimeout: Tempo di attesa per la prossima richiesta sulla stessa connessione.
    • LimitRequestBody (in .htaccess o <Directory>): Simile a client_max_body_size di Nginx. Se carichi file grandi tramite WordPress, potresti aver bisogno di aumentarlo (es. LimitRequestBody 67108864 per 64MB).

Importante: Apporta queste modifiche con cautela, una alla volta, e testa.

7. Conclusione e Prossimi Passi

Congratulazioni! Hai completato con successo il processo per installare WordPress LAMP sul tuo server Ubuntu 22.04, protetto con SSL e hai gettato le basi per ottimizzarlo. Ora hai una base solida e performante per il tuo sito, libera dai vincoli dell’hosting condiviso.

Alcuni passaggi successivi comuni sono la scelta dell’impostazione dei permalink per i tuoi post (si trova in Impostazioni » Permalink – scegli “Nome articolo” per la SEO) o la selezione di un nuovo tema (in Aspetto » Temi).

Se è la prima volta che usi WordPress, esplora un po’ l’interfaccia per familiarizzare con il tuo nuovo CMS.

Se questo articolo vi è piaciuto, seguiteci su X e Facebook per rimanere aggiornati su tutte le novità e consigli utili su WordPress!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *