Panoramica
Il seguente post mostrerà i passaggi su come installare WordPress con Nginx su Debian 10 e anche su Debian 11. Su un singolo server Debian installeremo e configureremo lo stack LEMP (Nginx, PHP e MariaDB) e alla fine installeremo ed eseguiremo WordPress. In altre parole, il nostro unico server Debian eseguirà il server web Nginx, il server MariaDB ed eseguirà del tutto WordPress.
WordPress può anche essere configurato ed eseguito su più server separati (server web separato e server database separato). Se hai bisogno di una configurazione del genere (con un database remoto), puoi controllare come configurarla in questo post. Un altro metodo per installare ed eseguire WordPress è con Docker, che è trattato in questo post.
Installa le librerie ei pacchetti necessari
sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl mariadb-server
Una volta completata l'installazione, avvia Nginx e MariaDB se non sono in esecuzione e abilita l'avvio automatico all'avvio.
sudo systemctl start nginx.service sudo systemctl enable nginx.service sudo systemctl start mariadb.service sydo systemctl enable mariadb.service
Configura il database
Avvia e configura il server mariadb con un database, utente e concedere privilegi.
Prima di ciò, per prima cosa si consiglia di eseguire l'installazione sicura:
sudo mysq_secure_installation
Quando ti viene richiesta la modifica della password di root, puoi saltarla, ma dipende da te se devi cambiare la password di root o meno. Con il resto delle domande richieste, puoi andare avanti e andare con l'opzione Sì. Simile come nell'immagine qui sotto:
quindi accedi al server del database e crea il database, un utente e imposta i privilegi
sudo mysql -u root -p CREATE DATABASE sampledbwp; GRANT ALL ON sampledbwp.* TO 'sample-admin'@'localhost' IDENTIFIED BY 'SamplePassword1'; quit
Con questi comandi, abbiamo creato il database - sampledbwp, creato l'utente sample-admin su localhost e concesso tutti i privilegi per leggere e scrivere il database che abbiamo appena creato.
Installa e configura WordPress
Passa alla seguente directory e scarica ed estrai l'installazione di WordPress:
cd /var/www/html/ sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzfv latest.tar.gz
Passa alla directory di wordpress e rinomina il file wp-config-sample.php in wp-config.php
cd wordpress mv wp-config-sample.php wp-config.php
Ora modifichiamo il file di configurazione di WordPress:
sudo nano wp-config.php
Nel file di configurazione, dobbiamo aggiungere l'utente del database, il nome del database e la password che abbiamo creato sul server MariaDB e aggiungere le chiavi salt da – https://api.wordpress.org/secret-key/1.1/salt/ . Fare riferimento all'immagine di esempio qui sotto:
Salva ed esci.
Imposta le autorizzazioni corrette per l'installazione di WordPress per essere accessibile da Internet:
sudo chown -R www-data:www-data /var/www/html/wordpress sudo chmod -R 755 /var/www/html/wordpress
Configura Nginx
Passando alla configurazione del server web nginx. Il primo passo è creare il file di configurazione per il nostro sito Web WordPress. Esegui il comando seguente per avviare l'editor di testo:
sudo nano /etc/nginx/sites-available/wordpress.conf
Di seguito troverai la configurazione di esempio:
server { listen 80; listen [::]:80; root /var/www/html/wordpress; index index.php index.html index.htm; server_name mysite.com www.mysite.com; error_log /var/log/nginx/mysite.com_error.log; access_log /var/log/nginx/mysite.com_access.log; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Salva ed esci.
Nota – Ricontrolla e conferma la radice della tua installazione di wordpress e la versione php-fpm in esecuzione sul tuo server. Quelli devono corrispondere nel file di configurazione.
Alla fine, dovrebbe assomigliare a questo:
La configurazione predefinita rimane ancora in Nginx ed è attiva. Fino alla rimozione, la tua configurazione non avrà luogo, il che significa che il tuo sito Web WordPress non sarà raggiungibile, quindi dobbiamo rimuovere la configurazione predefinita:
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Crea il collegamento simbolico per la nostra nuova configurazione wordpress Nginx:
sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/
Successivamente, ricontrolla la configurazione con:
sudo nginx -t
e riavvia Nginx
sudo systemctl restart nginx
Verifica se WordPress è attivo nel browser accedendo con l'indirizzo IP del server o con l'URL (se hai assegnato il nome di dominio) e completa l'installazione:
E questo è tutto. Ora hai un sito Web WordPress attivo e funzionante.
Alcuni suggerimenti e suggerimenti per la sicurezza
Qui vorrei sottolineare alcuni suggerimenti per un'installazione più sicura e protetta di WordPress e come mantenerlo.
- Il primo suggerimento è eliminare il file xmlrpc.php
Questo file non è un punto cruciale di WordPress e WordPress può funzionare senza questo file senza problemi. Il file Xmlrpc è stato utilizzato nelle prime fasi di WordPress come servizio, in cui i client di blog si connettono a WordPress tramite xmlrpc per pubblicare nuovi contenuti (in breve). Questo file ora è causa di molti e vari attacchi dannosi (DDoS, forza bruta e così via).
In questo esempio, possiamo eliminare questo file con il comando:
sudo rm /var/www/html/wordpress/xmlrpc.php
Anche una nota:ad ogni aggiornamento/aggiornamento di WordPress, questo file riapparirà, quindi è necessario ripetere l'operazione ogni volta che WordPress viene aggiornato.
- Elimina wp-config-sample.php
In questo post abbiamo rinominato questo file in wp-config.php. Abbiamo fatto in questo modo poiché abbiamo aggiunto manualmente le credenziali del database affinché WordPress si connettesse al server del database e aggiunto anche le chiavi salt. Questo file riappare anche con ogni aggiornamento/aggiornamento di WordPress e si consiglia di eliminarlo poiché è esposto a molti attacchi dannosi che possono causare la rimozione del tuo sito.
- Nascondi l'URL di wp-login e aggiungi l'accesso 2FA
Si consiglia vivamente di modificare l'accesso URL predefinito per prevenire attacchi di forza bruta e aggiungere l'accesso con autenticazione a due fattori. Puoi farlo facilmente con plugin come – WPS Hide login e miniOrange 2-Factor. Inoltre ora WordPress ha anche il suo login 2FA per impostazione predefinita.
- Aggiungi plug-in firewall e non utilizzare account con nome utente admin
Uno dei primi plugin che si consiglia vivamente di installare è un plugin firewall, come Wordfence o Sucuri
Riepilogo
Abbiamo illustrato i passaggi su come installare WordPress con Nginx su Debian 10 e anche su Debian 11. Questo scenario in cui WordPress è servito con il suo database su una singola macchina server è una buona opzione se stai iniziando ora e non hai un budget extra da risparmiare sull'infrastruttura o se sei un principiante che prova WordPress per la prima volta su un hosting cloud/dedicato/VM/VPS o solo per alcuni scopi di test.
Ma uno svantaggio che può causare nel tempo è che se si dispone ancora di questo scenario in produzione, può diventare piuttosto difficile mantenere il server quando è necessario applicare gli aggiornamenti poiché può causare tempi di inattività. Ecco perché è prassi comune avere almeno due server e separare l'installazione di WordPress avendo su un server solo il server web (Nginx o Apache) e l'installazione di WordPress e sull'altro il server di database (MariaDB, MySQL). Puoi controllare il processo di configurazione per questo tipo di ambiente in questo post.
Grazie mille per il tuo tempo...