Introduzione

LAMP è un gruppo di software open source che viene in genere installato insieme per consentire a un server di ospitare siti Web dinamici e app Web.
LAMP comprende Apache, MySQL, PHP.

In questo tutorial installeremo LAMP con Wordpress su Linux Mint 19 Tara.

Installazione Apache

I repository ufficiali dei pacchetti di Linux Mint includono una versione aggiornata di Apache, Possiamo quindi installare i pacchetti necessari usando apt.

Aggiornare l'elenco dei pacchetti di Linux Mint per avere la versione più recente degli elenchi del repository, da terminale:
sudo apt update

Per installare Apache aprire il terminale e dare questi comandi:
sudo apt install apache2

Se il firewall di Linux Mint è attivo dovete abilitare il traffico per Apache:
sudo ufw allow in "Apache Full"

A questo punto il server è pronto con le configurazioni di default.
Basta collegarsi al proprio indirizzo IP pubblico oppure in localhost:

http://localhost

Per riavviare Apache:
sudo service apache2 restart

Per fermare Apache:
sudo service apache2 stop

Per avviare Apache:
sudo service apache2 start

Configurare un Virtual Host

Quando si utilizza il server Web Apache, è possibile utilizzare host virtuali per ospitare più domini, quindi più siti web su un singolo server. Configureremo un dominio chiamato esempio.com, ma dovresti utilizzare un dominio esistente.

Apache su Linux Mint 19 Tara ha un blocco server abilitato di default che è configurato per servire i documenti dalla directory /var/www/html correttamente funzionante per un singolo sito. Se si ospitano più siti conviene, invece di modificare /var/www/html, creare una struttura di directory all'interno di /var/www lasciando /var/www/html come directory predefinita da servire se una richiesta client non corrisponde a qualsiasi altro sito configurato come virtual host.

Creare la directory per esempio.com, usando il flag -p per creare tutte le directory necessarie:
sudo mkdir -p /var/www/wordpress/

Assegnare l'utente corrente come proprietario della nuova directory:
sudo chown -R $USER:$USER /var/www/wordpress

Assicurarsi che i permessi siano corretti:
sudo chmod -R 755 /var/www/wordpress

Creare un nuovo file di configurazione per il virtual host di esempio.com, senza andare quindi a modificare quello di default:
sudo nano /etc/apache2/sites-available/wordpress.conf

Incollare le seguenti righe di codice, facendo attenzione a modificare i valori per il vostro dominio, in questo caso esempio.com:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName esempio.com
    ServerAlias www.esempio.com
    DocumentRoot /var/www/wordpress
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salvare e chiudere il file.

Abilitare il nuovo sito:
sudo a2ensite wordpress.conf

Verificare se i dati inseriti nei file sono corrette:
sudo apache2ctl configtest

Dovresti vedere una risposta simile a questa:

Syntax OK

Riavviare Apache:
sudo systemctl restart apache2

Adesso è possibile collegarsi al virtual host appena creato collegandosi al proprio dominio:

http://esempio.com

Installare MySQL

È possibile installare MySQL utilizzando il repository ufficiale di Linux Mint con apt.
Installare MySQL:
sudo apt install mysql-server

Mettere in sicurezza MySQL

Avviare uno script di MySQL per modificare alcune impostazioni:
sudo mysql_secure_installation

Vi verrà chiesto di inserire una password per l'utente root, che utilizzerete per accedere al server MySQL.

Inserire "y" per "si" oppure qualsiasi altra lettera per "no".

Vi verrà chiesto se si vuole testare la sicurezza della password.

Successivamente è consigliato premere "y" quindi "si".

  • Rimuovere gli utenti anonimi
  • Disabilitare il login root da remoto
  • Rimuovere il database test
  • Aggiornare le nuove regole

Modificare il metodo di autenticazione

A partire dalla versione 5.7 di MySQL, l'utente root di MySQL è impostato per l'autenticazione tramite il plug-in auth_socket per impostazione di default anziché con una password.

Per utilizzare una password per connettersi a MySQL come utente root è necessario modificare il metodo di autenticazione, da auth_socket a mysql_native_password.

Poiché non è stata impostata ancora nessuna password, è possibile connettersi al server MySQL utilizzando semplicemente il comando mysql oppure sudo mysql se si è loggati come utente normale. Successivamente sarà necessario utilizzare il comando mysql u root -p da utente root, altrimenti sudo mysql -u root -p da utente normale.

Quindi se siete loggati come utente root, scrivere nel terminale:
mysql

Altrimenti se siete loggati come utente normale con privilegi sudo:
sudo mysql

Per verificare il metodo di autenticazione associato agli account di mysql:
SELECT user,authentication_string,plugin,host FROM mysql.user;

Dovresti ricevere un messaggio simile a questo:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Come potete vedere per l'utente root è impostato di default il metodo di autenticazione auth_socket. Per utilizzare l'autenticazione con password per l'account root effettuare le seguenti modifiche:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';

Quindi effettuare un refresh delle tabelle:
FLUSH PRIVILEGES;

Adesso è possibile verificare il nuovo metodo di autenticazione associato all'utente root:
SELECT user,authentication_string,plugin,host FROM mysql.user;

Dovresti ricevere un messaggio simile a questo:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *E6A3377941E640ADEDCC8907E390B06B0C863862 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *5852386AB32C5DAD5DDA4F5FED911A70DA342656 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Uscire dal prompt di MySQL:
exit;

Per effettuare nuovamente il login al server MySQL adesso sarà necessario inserire una password, quindi da terminale:

Se siete loggati come utente root, scrivere nel terminale:
mysql -u root -p

Altrimenti se siete loggati come utente normale con privilegi sudo:
sudo mysql -u root -p

Creare un database per wordpress:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Associare un nuovo utente al database wordpress con password e privilegi:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'tua_password';

Aggiornare i privilegi:
FLUSH PRIVILEGES;

Uscire da mysql:
exit;

Installazione PHP

Per installare PHP ed estensioni utili per Wordpress, da terminale:
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

Riavviare Apache:
sudo service apache2 restart

Installare Wordpress

Dare i seguenti comandi da terminale, entrare nella cartella di Wordpress:
cd /var/www/wordpress

Scaricare Wordpress:
sudo wget https://wordpress.org/latest.zip

Installare Zip ed Unzip per gestire gli archivi .zip:
sudo apt-get install zip unzip

Estrarre Wordpress:
sudo unzip latest.zip

Entrare nella nuova cartella di Wordpress generata in automatico estraendo l'archivio:
cd wordpress

Spostare tutti i file nella cartella principale di Wordpress
sudo mv * /var/www/wordpress

Spostarsi di livello:
cd ..

Rimuovere la cartell di Wordpress generata in automatico:
sudo rm -rf wordpress

Cambiare i permessi:
sudo chown -R www-data:www-data /var/www/

Collegarsi al proprio nome dominio:

http://esempio.com

Dovreste vedere la prima schermata di installazione di Wordpress.

Il server è pronto per poter installare Wordpress con LAMP, Virtual Host, PHP, MySQL su Linux Mint 19 Tara.