GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare WordPress 5.x con Nginx su Ubuntu 18.04 / Ubuntu 16.04

WordPress è il software di blogging e gestione dei contenuti open source più utilizzato che alimenta circa 60 milioni di siti Web. È scritto in PHP e utilizza MariaDB / MySQL come database.

Questo tutorial ti aiuta a installare WordPress 5.x con Nginx su Ubuntu 18.04 / Ubuntu 16.04.

Vedremo anche come installare Let's Encrypt SSL per WordPress per la consegna sicura del sito web.

Installa lo stack LEMP

Prima di procedere, potresti voler vedere come installare lo stack LEMP.

Installa lo stack LEMP (Nginx, MariaDB e PHP) su Ubuntu 18.04

Installa lo stack LEMP (Nginx, MariaDB e PHP) su Ubuntu 16.04

Installa estensioni PHP

Le seguenti estensioni sono necessarie per installare ed eseguire WordPress su Ubuntu OS.

sudo apt install -y php-mysql php-dom php-simplexml php-ssh2 php-xml php-xmlreader php-curl php-exif php-ftp php-gd php-iconv php-imagick php-json php-mbstring php-posix php-sockets php-tokenizer

Configura il blocco server Nginx per WordPress

Creiamo un blocco server Nginx per l'installazione di WordPress. I file di configurazione dell'host virtuale possono essere trovati nella directory /etc/nginx/conf.d.

Il blocco del server richiede un nome di dominio, numero di porta, radice del documento, posizione del registro, CGI veloce, ecc.

Supponiamo quanto segue,

Nome di dominio: www.itzgeek.net
Radice del documento: /sites/www.itzgeek.net/public_html/
Registri: /sites/www.itzgeek.net/logs/

Crea un host virtuale.

Se hai installato Nginx dal repository di Ubuntu, i file di configurazione dell'host virtuale si trovano in /etc/nginx/sites-enabled e il percorso del file sarà come /etc/nginx/sites-enabled/www.itzgeek.net.conf.
sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Inserisci il seguente contenuto.

server {
	listen 80; 
	server_name www.itzgeek.net;

	root /sites/www.itzgeek.net/public_html/;

	index index.html index.php;

	access_log /sites/www.itzgeek.net/logs/access.log;
	error_log /sites/www.itzgeek.net/logs/error.log;

	# Don't allow pages to be rendered in an iframe on external domains.
	add_header X-Frame-Options "SAMEORIGIN";

	# MIME sniffing prevention
	add_header X-Content-Type-Options "nosniff";

	# Enable cross-site scripting filter in supported browsers.
	add_header X-Xss-Protection "1; mode=block";

	# Prevent access to hidden files
	location ~* /\.(?!well-known\/) {
		deny all;
	}

	# Prevent access to certain file extensions
	location ~\.(ini|log|conf)$ {
		deny all;
	}
        
        # Enable WordPress Permananent Links
	location / {
		try_files $uri $uri/ /index.php?$args;
	}

	location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}

}

Crea la radice del documento e la directory dei registri.

sudo mkdir -p /sites/www.itzgeek.net/public_html/

sudo mkdir -p /sites/www.itzgeek.net/logs/

Verifica i file di configurazione.

sudo nginx -t

Se ottieni quanto segue, significa che le voci dell'host virtuale sono corrette.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Riavvia i servizi.

sudo systemctl restart nginx

Installa Let's Encrypt SSL per WordPress (opzionale)

Nella situazione attuale, quasi tutti i siti Web utilizzano HTTPS (certificato SSL) per l'autenticità, gli account sicuri, per mantenere private le comunicazioni degli utenti. Google chiede ai proprietari di passare a HTTPS per una maggiore sicurezza e migliorare le classifiche.

Installa Certbot

Per generare un certificato SSL, installa il client Certbot ACME sul tuo sistema. Gestisce l'emissione e l'installazione del certificato senza tempi di inattività.

Il client Certbot non è disponibile nei repository di Ubuntu. Quindi, dobbiamo configurare Certbot PPA su Ubuntu.

sudo apt update

sudo apt install -y software-properties-common

sudo add-apt-repository universe

sudo add-apt-repository ppa:certbot/certbot

sudo apt update

Ora installa il client certbot.

sudo apt install -y certbot python-certbot-nginx

Aggiorna/Modifica record DNS

Accedi al tuo registrar di domini e crea un record A/CNAME per il tuo dominio.

Attendi un po' di tempo per consentire la propagazione del record.

Installa il certificato SSL Let's Encrypt

Usa il comando certbot per generare e installare un certificato Let's Encrypt.

sudo certbot --nginx

Uscita:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]  << Enter email id to receive notification

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A  << Accept Terms of Service

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y  << Subscribe to newsletter

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1  << Install SSL certificate for www.itzgeek.net
Deploying Certificate to VirtualHost /etc/nginx/conf.d/www.itzgeek.net.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2  < Redirect HTTP traffic to HTTPS site
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/www.itzgeek.net.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://www.itzgeek.net

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:                                                                                                   
 - Congratulations! Your certificate and chain have been saved at:                                                 
   /etc/letsencrypt/live/www.itzgeek.net/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/www.itzgeek.net/privkey.pem
   Your cert will expire on 2019-12-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Reindirizza le richieste HTTP non www a www HTTPS con Nginx

Ora creeremo un nuovo blocco server per reindirizzare il traffico proveniente dal sito HTTP non www al sito HTTPS www. Cioè, http://itzgeek.net>> https://www.itzgeek.net .

sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Aggiungi il blocco sottostante alla fine del file.

# Redirect NON-WWW HTTP to WWW HTTPS

server {
    if ($host = itzgeek.net) {
        return 301 https://www.itzgeek.net$request_uri;
    }


   server_name itzgeek.net;
    listen 80;
    return 404;

}

Riavvia il servizio Nginx.

sudo systemctl restart nginx

Crea database per WordPress

Accedi a MySQL.

sudo mysql -u root -p

Crea il database desiderato per WordPress.

CREATE DATABASE wordpress;

Crea un utente.

CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppassword';

Concedi all'utente creato l'autorizzazione ad accedere al database.

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

Esci dalla shell MariaDB.

quit

Scarica WordPress

Scarica l'ultimo pacchetto WordPress.

wget http://wordpress.org/latest.tar.gz

Estrai il pacchetto WordPress.

tar -zxvf latest.tar.gz

Sposta i file di WordPress nella radice del documento.

sudo mv wordpress/* /sites/www.itzgeek.net/public_html/

Rendi l'utente Apache (www-data) come proprietario del sito WordPress.

sudo chown -R www-data:www-data /sites/www.itzgeek.net/public_html/

sudo chown -R www-data:www-data /sites/www.itzgeek.net/logs/

Installa WordPress

Apri il browser e visita:

http://URL-del-tuo-sito-web

Otterrai la procedura guidata di installazione di WordPress.

Scegli la lingua per la tua installazione di WordPress.

Assicurati di avere il nome del database di WordPress, l'utente del database e la password dell'utente del database. Se sei pronto, fai clic su Andiamo!.

In questa pagina, inserisci le informazioni del database per consentire a WordPress di connettersi al database.

Se la connessione al database ha esito positivo, otterrai la pagina seguente. Fare clic su Esegui l'installazione.

In questa pagina, inserisci il titolo del sito, l'amministratore di WordPress e la password (a tua scelta) e poi l'indirizzo email. Quindi, fai clic su Installa WordPress.

L'installazione di WordPress è ora completa. Puoi fare clic su Accedi per accedere alla pagina di amministrazione di WordPress.

Inserisci l'utente amministratore di WordPress e la relativa password per accedere alla pagina di amministrazione di WordPress.

Amministratore WordPress:

WordPress Frontend:

Informazioni sul server WordPress (plug-in Informazioni sul server YLD):

Poche configurazioni extra

Configura il caricamento della dimensione massima del file per WordPress

Per impostazione predefinita, PHP non consente caricamenti Web superiori a 2 MB. Per consentire il caricamento di file più grandi tramite l'interfaccia Web di WordPress, configura l'impostazione upload_max_filesize in php.ini.

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

Modifica la dimensione del caricamento secondo le tue esigenze

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 256M

Riavvia il servizio php7.2-fpm.

sudo systemctl restart php7.2-fpm

Configura client_max_body_size su Nginx per WordPress

Potresti riscontrare un errore di seguito anche se hai modificato la dimensione massima del file di caricamento nel passaggio precedente.

2019/09/13 04:40:08 [error] 3803#3803: *517 client intended to send too large body: 9872781 bytes, client: 49.207.143.143, server: www.itzgeek.net, request: "POST /wp-admin/update.php?action=upload-theme HTTP/1.1", host: "www.itzgeek.net", referrer: "https://www.itzgeek.net/wp-admin/theme-install.php?browse=featured"

Aggiungi il modulo core client_max_body_size nel file di configurazione del server Nginx.

sudo nano /etc/nginx/nginx.conf

La direttiva può essere aggiunta al blocco http (per tutti i siti), a un particolare blocco del server o nel contesto della posizione. Sto aggiungendo la direttiva al blocco http che imposta il valore per tutti i siti in esecuzione su questo server.

http {
....

    client_max_body_size 256M;

....
}

Inoltre, dobbiamo cambiare il valore di post_max_size in php7.2-fpm.

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

Modifica la dimensione del caricamento secondo le tue esigenze.

post_max_size = 256M

Riavvia i servizi.

sudo systemctl restart php7.2-fpm

sudo systemctl restart nginx

Conclusione

È tutto. Spero che tu abbia imparato come installare WordPress 5.x con Nginx su Ubuntu 18.04 / Ubuntu 16.04. Condividi il tuo feedback nella sezione commenti.


Ubuntu
  1. Come installare Nginx su Ubuntu 16.04

  2. Come installare WordPress usando Nginx su Ubuntu 18.04

  3. Come installare Elgg con Nginx su Ubuntu 14.04

  4. Come installare Nginx su Ubuntu 16.04

  5. Come installare Joomla con Nginx su Ubuntu 18.04

Come installare WordPress con Nginx su Ubuntu

Come installare SuiteCRM su Ubuntu 20.04 con Apache/Nginx

Come installare MediaWiki su Ubuntu 20.04 con Apache/Nginx

Come installare WordPress con Nginx in Ubuntu 20.04

Installa WordPress con Nginx su Ubuntu 18.04

Come installare Nginx su Ubuntu 22.04