Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Installare WordPress 5 con Apache su Debian 9

Questo tutorial ti mostrerà come installare e configurare l’ultima versione di WordPress 5 su uno stack LAMP in Debian 9 –  Stretch . Wordpress, senza ombra di dubbio, è uno dei più popolari sistemi di gestione dei contenuti open source o CMS utilizzati in questi giorni per la pubblicazione su Internet, che alimenta oltre 60 milioni di siti Web in tutto il mondo, sia che si tratti di piccoli siti di blog o marchi di grandi nomi. Basato su motore PHP e MySQL, WordPress è spesso associato alla raccolta LAMP, installata su server dedicati o server virtuali privati ​​o su provider di hosting web condivisi. L’acronimo LAMP descrive una raccolta di software, ovvero bundle di software, che di solito è costituito da un kernel Linux Open Source, indipendentemente dalla distribuzione scelta, ApacheServer HTTP, che è uno dei più popolari server web open source su Internet grazie alla sua stabilità, flessibilità e prestazioni, linguaggio di programmazione interpretato lato server PHP e sistema di gestione dei database relazionale MariaDB(RDBMS), uno dei database più popolari software, biforcato e simultaneamente sviluppato dalla comunità open-source da MySQL originale.

Requisiti

  • Un’installazione pulita del sistema operativo Debian 9 su un server virtuale privato o una macchina virtuale o direttamente su una macchina bare metal dedicata.
  • Accesso remoto SSH in caso di VPS o server remoto o accesso diretto alla console
  • Almeno un indirizzo IP statico per un’interfaccia di rete configurata sul server
  • Nel caso in cui la pagina web sia pubblicamente disponibile in internet, è necessario un nome di dominio pubblico registrato con i record DNS corretti configurati. Durante questo tutorial, utilizzeremo example.com  come dominio di esempio e un indirizzo IP statico dallo spazio privato, in NAT, dietro il router principale. Il dominio sarà accessibile da Internet tramite la porta che inoltra le porte Apache 80 e 443 dal lato router alla LAN della macchina virtuale interna hosted.

Installa il pacchetto software LAMP

La prima cosa da fare prima di iniziare a installare tutti i componenti LAMP è accedere al server Debian 9 ed eseguire una procedura aggiornata per tutti i componenti del sistema, come aggiornamenti del kernel, aggiornamenti del pacchetto o patch di sicurezza, emettendo il seguenti comandi con privilegi di root.

apt-get update
apt-get upgrade
apt-get dist-upgrade

Nel passaggio successivo, dovresti impostare il nome della tua macchina sostituendo la variabile hostname con il tuo nome descrittivo eseguendo il comando seguente. Tenere presente che potrebbe essere necessario riavviare il sistema per applicare di conseguenza il nuovo nome host.

hostnamectl set-hostname hostname.yourdomain.com

È inoltre necessario installare le seguenti utilità che saranno utili in seguito per vari problemi di risoluzione dei problemi.

apt install net-tools sudo wget curl bash-completion

Dopo che il nome host della macchina è stato applicato, accedere di nuovo con i privilegi di root e installare il server Apache HTTP, che è, per impostazione predefinita, precompilato in un pacchetto binario e fornito da repository Debian 9.

apt install apache2

Quindi, installare l’ultima versione dell’interprete di lingua PHP e tutti i moduli necessari necessari per il server Web Apache per distribuire WordPress CMS emettendo il seguente comando.

apt install libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc

L’ultimo componente mancante ora per completare lo stack LAMP è il server database MariaDB. Eseguire il seguente comando per installare il server MariaDB insieme al modulo PHP richiesto per accedere al database dal server HTTP Apache.

apt install php7.0-mysql mariadb-server mariadb-client

Dopo aver installato il database MariaDB, avviare il daemon e proteggere il database eseguendo lo script mysql_secure_installation come illustrato nell’estratto seguente. Rispondete principalmente con  a tutte le domande che lo script richiede. Inoltre, assicurati di scegliere una password complessa per l’account root. Essere consapevoli che l’account root di MySQL non è identico sarà l’account root di Linux. Il primo è utilizzato solo per gestire il database MariaDB e il secondo è l’account superutente in ogni sistema Linux. Questi account non si sovrappongono mai in un sistema.

systemctl start mariadb
mysql_secure_installation
NOTA: ESEGUIRE TUTTE LE PARTI DI QUESTO SCRIPT È CONSIGLIATO PER TUTTI I 
      SERVER DI 
MariaDB IN USO DI PRODUZIONE! LEGGERE ATTENTAMENTE OGNI FASE! Per accedere a MariaDB per proteggerlo, avremo bisogno della password corrente per l'utente root. Se hai appena installato MariaDB e non hai ancora impostato la password di root, la password sarà vuota, quindi ti basta premere invio qui. Immettere la password corrente per root (immettere per nessuno): OK, password utilizzata con successo, in movimento ... L' impostazione della password di root garantisce che nessuno possa accedere all'utente root di MariaDB senza l'autorizzazione appropriata. Imposta la password di root? [S / n] y Nuova password: reinserisci nuova password: password aggiornata correttamente! 




 


 






Ricaricare le tabelle dei privilegi 
 ... Successo! 
Per impostazione predefinita, l'installazione di MariaDB ha un utente anonimo, consentendo a chiunque 
di accedere a MariaDB senza dover creare un account utente per 
loro. Questo è inteso solo per il test e per rendere l'installazione 
più scorrevole. Dovresti rimuoverli prima di trasferirti in un 
ambiente di produzione. 
Rimuovere gli utenti anonimi? [S / n]  y
  ... successo! 
Normalmente, a root dovrebbe essere permesso di connettersi solo da "localhost". Questo 
assicura che qualcuno non possa indovinare la password di root dalla rete. 
Non consentire il login di root da remoto? [S / n] y
  ... successo! 
Di default, MariaDB ha un database chiamato 'test' che chiunque può
accesso. Anche questo è destinato esclusivamente ai test e deve essere rimosso 
prima di spostarsi in un ambiente di produzione. 
Rimuovere il database di test e accedervi? [S / n] y
  - Rilascio del database di test ... 
 ... Successo! 
 - Rimozione dei privilegi sul database di test ... 
 ... Successo! 
Il ricaricamento delle tabelle dei privilegi assicurerà che tutte le modifiche apportate fino 
a quel momento abbiano effetto immediato. 
Ricarica le tabelle dei privilegi adesso? [S / n] y
  ... successo! 
Ripulire ... 
Tutto fatto! Se hai completato tutti i passaggi precedenti, l' 
installazione di 
MariaDB dovrebbe essere sicura. Grazie per aver utilizzato MariaDB!

Non abbiamo ancora finito con la sicurezza del database di MariaDB. Per impostazione predefinita, è possibile accedere a MariaDB da localhost con l’account di root del database senza richiedere una password. Per evitare possibili problemi di sicurezza, accedere al database con l’utente root e inviare i seguenti comandi.

mysql -u root -p
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit

 Rimuovi il plugin dall'utente root di MySQL

Ora prova il database cercando di accedere con l’ account root senza la password. Dovresti essere negato l’accesso al database MariaDB.

Nel prossimo passaggio, abiliteremo e configureremo TLS e riscriveremo i moduli per il server web Apache, che per impostazione predefinita sono disabilitati. Esegui i comandi sottostanti per abilitare entrambi i moduli.

a2enmod rewrite ssl
a2ensite default-ssl.conf

Quindi, apri i file di configurazione di Apache per entrambi i siti abilitati e aggiungi il seguente blocco sotto la direttiva DocumentRoot come illustrato nello screenshot seguente.

nano /etc/apache2/sites-enabled/000-default.conf
nano /etc/apache2/sites-enabled/default-ssl.conf

In entrambi i file di configurazione aggiungi il seguente blocco di codice:

    <Directory / var / www / html> 
       Opzioni Indici FollowSymLinks MultiViews 
       AllowOverride Tutti 
       Richiede tutto garantito 
    </ Directory>

Concedere l'accesso alla directory / var / www / html e consentire le sostituzioni

Nel file di configurazione TLS di default-ssl.conf apache è anche possibile aggiungere il contenuto sottostante, se non esistente, al fine di migliorare la sicurezza del protocollo Apache SSL. Queste linee di codice dovrebbero correggere le vulnerabilità SSL comuni.

SSLProtocollo tutto -SSLv2 -SSLv3
 # Aggiungi cifrario SSL in una lunga linea 
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256 -GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-DSS-AES128-GCM-SHA256: kEDH + AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128 -SHA: ECDHE-ECDSA-AES128-SHA: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256 : DHE-RSA-AES128-SHA: DHE-DSS-AES128-SHA256: DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA: AES128-GCM-SHA256: AES256-GCM -SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES256-SHA: AES: Camelia: DES-CBC3-SHA: aNULL: eNULL: EXPORT: DES: RC4:! MD5:! PSK: ! aECDH: EDH-DSS-DES-CBC3-SHA: EDH-RSA-DES-CBC3-SHA: krb5-DES-CBC3-SHA
SSLHonorCipherOrder su 
SSLOptions + StrictRequire Header imposta sempre Strict-Transport-Security "max-age = 63072000; includeSubdomains" Intestazione sempre impostata X-Frame-Options DENY Header imposta sempre X-Content-Type-Options nosniff
 


Imposta severe impostazioni SSL in apache2

Se le righe illustrate nell’estratto precedente esistono già nel file di configurazione di Apache SSL, assicurati di modificarle in modo che appaiano come descritto sopra. Per applicare queste impostazioni, abilitare il modulo intestazioni Apache e riavviare il servizio eseguendo i seguenti comandi:

a2enmod headers
systemctl restart apache2.service

Per un sito Web di produzione, dovrebbe essere obbligatorio abilitare il modulo TLS di Apache perché WordPress CMS genera contenuti prevalentemente dinamici tramite gateway PHP e gestisce anche il processo di autenticazione per i propri utenti interni. L’utilizzo della tecnologia TLS garantisce che le informazioni trasferite siano crittografate alle due estremità e che la connessione sia protetta. Una terza parte o un man-in-the-middle possono intercettare il traffico ma non possono decodificare il contenuto, perché le informazioni non vengono fornite in formato testo.

Dopo aver apportato tutte le suddette modifiche, testare la configurazione di Apache per rilevare potenziali errori di sintassi e, se tutto è a posto, riavviare i daemon LAMP per riflettere tutte le modifiche apportate finora e abilitare i servizi a livello di sistema emettendo i seguenti comandi .

apache2ctl -t
systemctl restart apache2.service mariadb.service
systemctl enable apache2.service mariadb.service

Infine, controlla se i servizi Apache e MariaDB hanno aperto le porte in ascolto ascoltando il comando netstat e filtra l’output usando egrep. A questo punto, il web server Apache dovrebbe avere le porte 80 e 443 (corrispondenti ai protocolli HTTP e https) generalmente esposte e MariaDB dovrebbe essere solo vincolante su localhost: socket 3306 . Utilizzare il flag -n con il comando netstat per eliminare la visualizzazione dei nomi dei servizi.

netstat -tlp| egrep 'http|mysql'

 Controlla se MariaDB è stato avviato

Per assicurarti che il tuo server web sia accessibile da Internet tramite i protocolli HTTP e HTTPS, apri un browser e vai al tuo nome di dominio. Navigando attraverso il protocollo HTTPS, verrà visualizzato un errore del certificato nel browser. Questo perché il file di configurazione TLS predefinito di Apache è configurato per utilizzare i certificati autofirmati. È necessario accettare l’errore TLS e continuare la navigazione verso la pagina Web predefinita come illustrato di seguito.

http://www.yourdomain.com 

Pagina di test di Apache2

https://www.yourdomain.com 

Pagina di test di Apache 2 in modalità SSL

Nel caso in cui non sia possibile visitare la pagina Web predefinita del dominio da Internet, è necessario verificare prima se alcune regole firewall nel sistema stanno bloccando le richieste o assicurarsi che le porte appropriate sul router siano inoltrate nella LAN interna nel caso in cui il server si trovi dietro un Rete NAT-ed. Potresti anche voler controllare i record DNS nel pannello di registrazione dei domini e assicurarti che puntino al tuo IP WAN e se i record finiscono di propagarsi su Internet.

Per verificare se PHP funziona come previsto sul lato server, creare un PHP php in / var / www / html / percorso di sistema, che è il percorso root del documento Web predefinito del server Web Apache, eseguendo il comando di seguito e navigare fino a il seguente URI dal browser per ottenere il risultato: http://www.yourdomain.com/info.php

echo '<?php phpinfo(); ?>' > /var/www/html/info.php

 Pagina di test di informazioni PHP

Installa WordPress 5.0

Ora che lo stack LAMP è completamente configurato, l’installazione di WordPress CMS è relativamente semplice. Innanzitutto, accedere al database MariaDB e creare un database di installazione per WordPress e un utente con la password corretta per l’installazione e la gestione di CMS WordPress, inviando i comandi di seguito. Sentiti libero di sostituire il nome del database e le credenziali del database per soddisfare le tue esigenze.

mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
FLUSH PRIVILEGES;

 Crea il database MySQL di WordPress e l'Utente del Database

Successivamente, scaricare l’ultimo tarball di WordPress dal sito Web ufficiale utilizzando l’ utilità wget ed estrarre l’archivio compresso con l’ utilità tar . Copiare i file di installazione nel percorso radice del documento del server Web Apache inviando i comandi di seguito. Inoltre, assicurati di rimuovere la pagina indice index.html predefinita .

cd /tmp
wget http://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
cp -rf wordpress/* /var/www/html/
rm /var/www/html/index.html

 Scarica e disimballa WordPress sul tuo server

Modificare le autorizzazioni del percorso Webroot di Apache come descritto di seguito per concedere le autorizzazioni di scrittura complete del gruppo www-data del server Web alla directory di installazione. Questa configurazione consentirà al server Web Apache di creare o modificare file e directory in questo specifico percorso di sistema. I più importanti sarebbero la  directory di upload e il file .htaccess , che può essere usato per controllare ed estendere la funzionalità di Apache.

chmod -R 775 /var/www/html/
chgrp -R www-data /var/www/html/
ls -al /var/www/html

File WordPress

Ora che tutto è a posto, iniziamo ad installare WordPress. Il processo di installazione verrà eseguito dal browser. Apri un browser e visita il tuo dominio tramite il protocollo HTTPS. Nella prima schermata dell’installazione, premi il pulsante Let’s go per avviare l’installazione.

Programma di installazione web di WordPress

Nella schermata successiva di installazione, aggiungi il nome del database, le credenziali di accesso al database e l’host del database che hai creato in precedenza per l’installazione di WordPress e premi il  pulsante Invia per continuare. La configurazione del database verrà salvata in /var/www/html/wp-config.php È possibile modificare manualmente il file in un secondo momento per scopi speciali di WordPress.

Impostazioni del database

Nella schermata successiva fai clic su Esegui il pulsante Installa e inserisci il titolo del sito web, le credenziali di amministratore del sito web e l’indirizzo email. Una password complessa dovrebbe essere generata automaticamente dagli script di installazione. È possibile scegliere di salvare questa password o fornire la propria password complessa. Al termine, premere il pulsante Installa WordPress per completare il processo di installazione.

Esegui l'installazione

Informazioni sul sito WordPress

Infine, al termine dell’installazione, accedere al dashboard di WordPress con le credenziali create durante il processo di installazione e iniziare a gestire il proprio sito Web.

Successo dell'installazione di WordPress

Login amministratore di WordPress

Accedi al backend di WordPress.

Backend di WordPress

Dashboard di amministrazione di WordPress.

Modifica di un post nel nuovo editor Gutenberg di WordPress.

WordPress 5.0 Frontend con il nuovo tema TwentyNineteen.

Congratulazioni! Hai installato con successo l’ultima versione di WordPress CMS in cima al pacchetto software LAMP in Debian 9, nome in codice Stretch.

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp