GNU/Linux >> Linux Esercitazione >  >> Ubuntu

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

Questo tutorial ti mostrerà come installare WordPress su Ubuntu 20.04 con Nginx, MariaDB e PHP7.4 (LEMP Stack). 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 LEMP su Ubuntu 20.04. In caso contrario, dai un'occhiata al seguente tutorial.

  • Come installare lo stack LEMP (Nginx, MariaDB, PHP7.4) su Ubuntu 20.04

Dopo aver terminato l'installazione di LEMP, 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 al prompt della 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 zip usando il comando seguente.

sudo apt install unzip

sudo mkdir -p /usr/share/nginx

sudo unzip latest.zip -d /usr/share/nginx/

L'archivio verrà estratto in /usr/share/nginx/ directory. Una nuova directory denominata wordpress verrà creato (/usr/share/nginx/wordpress). Ora possiamo rinominarlo come di seguito, quindi è facile per noi identificare ogni directory. Sostituisci example.com con il tuo vero nome di dominio.

sudo mv /usr/share/nginx/wordpress /usr/share/nginx/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 e poi esci dalla shell di MariaDB.

flush privileges;

exit;

Fase 3:Configura WordPress

Vai alla tua directory di WordPress.

cd /usr/share/nginx/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');

Quindi scorri verso il basso per trovare la riga seguente.

$table_prefix = 'wp_';

Per impostazione predefinita, il nome di ogni tabella di database di WordPress inizia con wp_ come prefisso. Si consiglia vivamente di cambiarlo con qualcos'altro per migliorare la sicurezza. Usa caratteri casuali come di seguito.

$table_prefix = '9OzB3g_';

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 Nginx (www-data ) come proprietario della directory del sito WordPress utilizzando il comando seguente.

sudo chown www-data:www-data /usr/share/nginx/example.com/ -R

Passaggio 4:crea un blocco server Nginx per WordPress

Creeremo il file di blocco del server in /etc/nginx/conf.d/ directory. Il nome del file deve terminare con .conf .

sudo nano /etc/nginx/conf.d/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.

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /usr/share/nginx/example.com/;
  index index.php index.html index.htm index.nginx-debian.html;

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

   location ~ ^/wp-json/ {
     rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;
   }

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  client_max_body_size 20M;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  #enable gzip compression
  gzip on;
  gzip_vary on;
  gzip_min_length 1000;
  gzip_comp_level 5;
  gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
  gzip_proxied any;

  # A long browser cache lifetime can speed up repeat visits to your page
  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /\.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

Salva e chiudi il file. Quindi testa le configurazioni di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx.

sudo systemctl reload nginx

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 php-imagick php7.4-fpm php7.4-mbstring php7.4-bcmath php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-json php7.4-cli php7.4-curl php7.4-zip

Quindi ricarica PHP-FPM e Nginx. Ora dovrebbe essere visualizzata la procedura guidata.

sudo systemctl reload php7.4-fpm nginx

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-nginx

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

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

Dove

  • --nginx :usa il plugin Nginx.
  • --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.
  • --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.

Come reindirizzare 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. È 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.

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.

Aumenta il limite delle dimensioni del file di caricamento

Per impostazione predefinita, file come immagini, file PDF caricati nella libreria multimediale di WordPress non possono essere più grandi di 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

Nginx imposta anche un limite per la dimensione del file di caricamento. Il limite di dimensione massima del file di caricamento predefinito impostato da Nginx è 1 MB. Per consentire il caricamento di file di grandi dimensioni sul tuo sito WordPress, modifica il file di configurazione di Nginx.

sudo nano /etc/nginx/conf.d/example.com.conf

Abbiamo già impostato la dimensione massima del file in questo file, come indicato da

client_max_body_size 2M;

Puoi cambiarlo se preferisci, ad esempio 20 milioni.

client_max_body_size 20M;

Salva e chiudi il file. Quindi ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Passaggio successivo

  • Puoi anche utilizzare lo strumento da riga di comando WP-CLI per gestire il tuo sito WordPress.
  • Puoi usare WPScan per scansionare le vulnerabilità del tuo sito WordPress.
  • Per monitorare le prestazioni del back-end del tuo sito WordPress, puoi utilizzare Nginx Amplify.

Spero che questo tutorial ti abbia aiutato a installare WordPress su Ubuntu 20.04 con Nginx, MariaDB e PHP7.4 (stack LEMP). Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere ulteriori suggerimenti e trucchi. Attento 🙂


Ubuntu
  1. Come installare WordPress con Nginx su Ubuntu 18.04

  2. Come installare SuiteCRM con Nginx su Ubuntu 16.04

  3. Come installare Wordpress con Nginx, MariaDB e HHVM su Ubuntu 16.04 LTS

  4. Installa WordPress con Memcached e Nginx su Ubuntu

  5. Come installare WordPress con LEMP su Ubuntu 20.04

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 LEMP (Nginx, MariaDB, PHP7.1) su Ubuntu 17.10

Come installare lo stack LEMP (Nginx, MariaDB, PHP7.2) su Ubuntu 18.04 LTS

Installa WordPress con Nginx su Ubuntu 18.04

Come installare lo stack LEMP (Nginx, MariaDB, PHP7.2) su Ubuntu 18.04 LTS?