GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa WordPress su Ubuntu 20.04 con Apache, MariaDB, PHP7.4 (LAMP)

Questo tutorial ti mostrerà come installare WordPress su Ubuntu 20.04 con Apache, MariaDB e PHP7.4 (Stack LAMP). WordPress è il CMS (Content Management System) più popolare al mondo. Si stima che più di un terzo dei siti Web oggi sia alimentato da WordPress. PHP7.4 è stato inserito nel repository di Ubuntu 20.04 e WordPress funziona perfettamente con esso.

Prerequisito

Per seguire questo tutorial, devi avere un server Ubuntu 20.04 con almeno 1 GB di RAM. Se stai cercando un VPS (Virtual Private Server), puoi fare clic su questo link speciale per ottenere $ 50 di credito gratuito su DigitalOcean. (Solo per nuovi utenti). Se sei già un utente DigitalOcean, puoi fare clic su questo link speciale per ottenere $ 50 di credito gratuito su Vultr (solo per i nuovi utenti).

Hai anche bisogno di un nome di dominio, quindi i visitatori possono digitare un nome di dominio nella barra degli indirizzi del browser web per accedere al tuo sito. Ho registrato il mio nome di dominio su NameCheap perché il prezzo è basso e offrono protezione della privacy a Whois gratuita per tutta la vita.

Questo tutorial presuppone che tu abbia già impostato uno stack LAMP su Ubuntu 20.04. In caso contrario, dai un'occhiata al seguente tutorial.

  • Come installare lo stack LAMP (Apache, MariaDB, PHP7.4) su Ubuntu 20.04

Dopo aver terminato l'installazione di LAMP, torna qui e continua a leggere.

Passaggio 1:scarica WordPress

SSH nel tuo server Ubuntu 20.04 e aggiorna il software esistente.

sudo apt update && sudo apt upgrade

Quindi, vai alla pagina di download di wordpress.org e scarica l'archivio zip. È possibile acquisire il collegamento per il download diretto facendo clic con il pulsante destro del mouse sul pulsante di download e selezionando copy link location .

Quindi alla riga di comando, digita wget seguito dal link per il download diretto per scaricare WordPress sul tuo server Ubuntu 20.04.

wget https://wordpress.org/latest.zip

Quindi, estrai l'archivio in /var/www/ directory con unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip latest.zip -d /var/www/

Il -d opzione specifica la directory di destinazione. I file web di WordPress verranno estratti in /var/www/wordpress . Possiamo rinominare questa directory come di seguito, quindi è facile per noi identificare ciascuna directory. Sostituisci example.com con il tuo vero nome di dominio.

sudo mv /var/www/wordpress /var/www/example.com

Fase 2:crea un database e un utente per il sito WordPress

Accedi alla shell di MariaDB come root con il seguente comando.

sudo mariadb -u root

o

sudo mysql -u root

Una volta effettuato l'accesso, crea un database per WordPress utilizzando il comando seguente. L'ho chiamato wordpress , ma puoi usare il nome che preferisci, ad esempio il nome del tuo sito. (Non tralasciare il punto e virgola.)

create database wordpress;

Quindi inserisci il comando seguente per creare un utente del database per WordPress. Questo comando concede all'utente anche tutti i privilegi del database di WordPress. Sostituisci wpuser e your-password con il nome utente e la password preferiti.

grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';

Svuota la tabella dei privilegi per rendere effettive le modifiche, quindi esci dalla shell di MariaDB.

flush privileges;

exit;

Fase 3:Configura WordPress

Vai alla tua directory di WordPress.

cd /var/www/example.com/

Copia il file di configurazione di esempio e rinominalo in wp-config.php .

sudo cp wp-config-sample.php wp-config.php

Ora modifica il nuovo file di configurazione con un editor di testo da riga di comando come Nano.

sudo nano wp-config.php

Trova le righe seguenti e sostituisci i testi rossi con il nome del database, il nome utente e la password che hai creato nel passaggio precedente.

/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

Salva e chiudi il file. Per salvare il file nell'editor di testo Nano, premi Ctrl+O , quindi premi Enter per confermare. Quindi, premi Ctrl+X per uscire.

Dobbiamo anche impostare l'utente Apache (www-data ) come proprietario della directory del sito WordPress utilizzando il comando seguente.

sudo chown www-data:www-data /var/www/example.com/ -R

Fase 4:crea un file Apache Virtual Host per WordPress

Esegui il comando seguente per creare un file host virtuale per il tuo sito WordPress in /etc/apache2/sites-available/ directory.

sudo nano /etc/apache2/sites-available/example.com.conf

Inserisci i seguenti testi nel file. Sostituisci i testi rossi con il tuo nome di dominio. Non dimenticare di creare record A per il tuo nome di dominio nel tuo gestore DNS.

<VirtualHost *:80>       
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /var/www/example.com

        #This enables .htaccess file, which is needed for WordPress Permalink to work. 
        <Directory "/var/www/example.com">
             AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>

Salva e chiudi il file. Quindi testa le configurazioni.

sudo apache2ctl configtest

Se vedi "Sintassi OK", abilita questo host virtuale.

sudo a2ensite example.com.conf

E ricarica Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Imposta un record A corretto per il tuo nome di dominio, quindi inserisci il tuo nome di dominio nella barra degli indirizzi del browser.

example.com

o

example.com/wp-admin/install.php

Vedrai la procedura guidata di installazione di WordPress. Seleziona una lingua.

Se la procedura guidata di installazione non viene visualizzata, probabilmente dovrai installare alcune estensioni PHP7.

sudo apt install php7.4-mbstring php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-bcmath php7.4-json php7.4-cli php7.4-curl php7.4-zip

Quindi ricarica Apache e ora dovrebbe essere visualizzata la procedura guidata.

sudo systemctl reload apache2

Prima di inserire le tue informazioni riservate nella procedura guidata di configurazione, ti consigliamo di abilitare HTTPS per prevenire il dirottamento del traffico.

Fase 5:abilitazione di HTTPS

Per crittografare il traffico HTTP, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui il comando seguente per installare il client Let's Encrypt (certbot) sul server Ubuntu 20.04.

sudo apt install certbot python3-certbot-apache

Ed esegui questo comando per ottenere e installare il certificato TLS.

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com

Dove

  • --apache :usa il plugin Apache.
  • --agree-tos :Accetta i termini di servizio.
  • --redirect :Forza HTTPS tramite reindirizzamento 301.
  • --hsts :aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --uir :aggiungi l'intestazione "Content-Security-Policy:upgrade-insecure-requests" a ogni risposta HTTP.
  • --staple-ocsp :Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.
  • --email :Email utilizzata per la registrazione e il contatto di recupero.
  • -d flag è seguito da un elenco di nomi di dominio, separati da virgola. Puoi aggiungere fino a 100 nomi di dominio.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

Ora, se ricarichi la configurazione guidata di WordPress, puoi vedere che HTTP viene automaticamente reindirizzato alla connessione HTTPS.

Fase 6:termina l'installazione con l'installazione guidata

Crea un account amministratore e fai clic su Installa WordPress pulsante.

E ora il tuo nuovo sito WordPress è installato.

Reindirizzamento da WWW a non WWW (o viceversa)

Abbiamo già abilitato il reindirizzamento da HTTP a HTTPS, ciò che resta da fare è reindirizzare www a non www o viceversa. Se stai usando WordPress, allora è molto facile. Vai semplicemente su WordPress Dashboard> Impostazioni> Generale e imposta la tua versione preferita (www o non www) in Indirizzo WordPress e Indirizzo sito . Assicurati di includere il https:// prefisso.

Correzione del doppio reindirizzamento 301

Impostiamo la versione del dominio preferita nell'Indirizzo WordPress e Indirizzo sito campi. Tuttavia, c'è un doppio problema di reindirizzamento 301. Innanzitutto, il server Apache reindirizza da HTTP a HTTPS, quindi WordPress reindirizza a un dominio www o non www.

Alcuni potrebbero obiettare che puoi perdere il succo del link SEO quando esegui il doppio reindirizzamento 301. Se sei preoccupato per questo, puoi utilizzare il metodo seguente per fare in modo che tutte le versioni del dominio vadano direttamente alla destinazione finale, quindi ci sarà un unico reindirizzamento 301.

Modifica il file dell'host virtuale. (Non l'host virtuale SSL)

sudo nano /etc/apache2/sites-enabled/example.com.conf

Il client CertBot ha aggiunto le seguenti righe al file per reindirizzare HTTP a HTTPS.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Per reindirizzare a un dominio www o non www, è necessario modificare l'ultima riga. Sostituisci %{SERVER_NAME} con la tua versione di dominio preferita come di seguito. (dominio www)

RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Se preferisci un dominio non www, cambialo come segue.

RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Quindi salva e chiudi il file. Dovremo anche modificare l'host virtuale SSL.

sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

Aggiungi le seguenti righe sopra il tag di chiusura per reindirizzare il dominio non www al dominio www.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Se desideri reindirizzare www a un dominio non www, aggiungi invece le seguenti righe.

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Salva e chiudi il file. Ricarica il servizio Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Per essere più chiari, di seguito è riportato uno screenshot del mio file host virtuale Apache e del file host virtuale SSL per il reindirizzamento non www al dominio www.

File dell'host virtuale Apache

File host virtuale SSL Apache

Assicurati di impostare la versione del tuo dominio preferita in Indirizzo WordPress e Indirizzo sito prima di modificare i file dell'host virtuale Apache. Se le impostazioni di WordPress sono in contraddizione con la configurazione di Apache, il tuo sito finirà in un ciclo di reindirizzamento.

Rinnovo automatico del certificato TLS

Per rinnovare automaticamente il certificato Let's Encrypt, modifica semplicemente il file crontab dell'utente root.

sudo crontab -e

Quindi aggiungi la seguente riga in basso.

@daily certbot renew --quiet && systemctl reload apache2

È necessario ricaricare Apache per presentare il nuovo certificato ai client.

Aumenta il limite delle dimensioni del file di caricamento

Se utilizzi il modulo PHP di Apache per eseguire lo script PHP, non c'è limite alle dimensioni del file di caricamento. Se utilizzi PHP-FPM per eseguire lo script PHP, modifica il limite delle dimensioni del file in modo da poter caricare file di grandi dimensioni nella libreria multimediale di WordPress. La dimensione massima predefinita del file per il caricamento in PHP-FPM è 2 MB. Per aumentare il limite della dimensione del caricamento, modifica il file di configurazione PHP.

sudo nano /etc/php/7.4/fpm/php.ini

Trova la riga seguente (riga 846).

upload_max_filesize = 2M

Modifica il valore come di seguito:

upload_max_filesize = 20M

Quindi trova la riga seguente (riga 694).

post_max_size = 8M

Modifica la dimensione massima dei dati POST che PHP accetterà.

post_max_size = 20M

Salva e chiudi il file. In alternativa, puoi eseguire i due comandi seguenti per modificare il valore senza aprire manualmente il file.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini

sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php.ini

Quindi riavvia PHP-FPM.

sudo systemctl restart php7.4-fpm

Come inviare e-mail in WordPress

Il tuo sito WordPress deve inviare e-mail come e-mail di registrazione dell'account, e-mail di reimpostazione della password, e-mail di notifica dei commenti, ecc. Invece di utilizzare costose soluzioni di terze parti come Gsuite per creare indirizzi e-mail professionali per il tuo sito Web, puoi seguire questo tutorial di iRedMail per impostare crea il tuo server di posta con il tuo nome di dominio, così puoi avere caselle di posta illimitate e inviare e-mail illimitate senza spendere troppo.

Nota che è una buona pratica installare il server di posta e WordPress su due diversi server privati ​​virtuali perché non vuoi che il server di posta rallenti la velocità del tuo sito WordPress e il server di posta perderà l'indirizzo IP del tuo sito WordPress se si trovano sullo stesso server privato virtuale, il che significa che gli hacker possono bypassare qualsiasi CDN (Content Delivery Network) che stai utilizzando e lanciare un attacco DDoS direttamente sul tuo server di origine.

Una volta che il tuo server di posta è attivo e funzionante, puoi installare un plug-in SMTP in WordPress, in modo che possa connettersi al tuo server di posta e inviare e-mail. Vai alla tua dashboard WordPress -> Plugin , fai clic su Aggiungi nuovo per installare un nuovo plugin.

Quindi digita WP Mail SMTP nella casella di ricerca. Installa e attiva WP Mail SMTP di WPForms plug-in.

Ricarica la pagina web del dashboard di WordPress, vedrai WP Mail SMTP sulla barra dei menu a sinistra. Fai clic su di esso e seleziona Impostazioni .

Quindi scorri verso il basso fino alla sezione Mailer. Per impostazione predefinita, il mailer PHP è selezionato. Dobbiamo cambiarlo in Altro SMTP .

Scorri verso il basso e dovrai inserire le impostazioni SMTP.

  • Inserisci il nome host del tuo server di posta.
  • Seleziona TLS come crittografia.
  • Usa la porta 587.
  • Abilita autenticazione.
  • Inserisci un indirizzo email del tuo dominio e la password.

Dopo aver salvato le impostazioni, puoi testare l'invio di e-mail disconnettendoti dalla dashboard di WordPress e facendo clic su password dimenticata link per inviare un'e-mail di reimpostazione della password.


Ubuntu
  1. Come installare WordPress con Apache su Ubuntu 18.04

  2. Come installare Joomla con Apache su Ubuntu 18.04

  3. Come installare più WordPress con Nginx su Ubuntu 18.04

  4. Installa WordPress con Stack LAMP su Ubuntu 20.04

  5. Come installare phpBB con Apache su Ubuntu 20.04

Installa WordPress su Ubuntu 20.04 con Nginx, MariaDB, PHP7.4 (LEMP)

Come installare WordPress 4.7 su Ubuntu 16.04 con Apache, MariaDB, PHP7

Installa WordPress su Ubuntu 18.04 con Nginx, MariaDB, PHP7.2 (LEMP)

Come installare lo stack LAMP (Apache, MariaDB, PHP7.1) su Ubuntu 17.10

Come installare lo stack LAMP su Ubuntu 20.04

Come installare WordPress con LAMP su Ubuntu 20.04