Introduzione

Se il vostro intento è installare Magento su di un server in remoto continuate a leggere, altrimenti se volete installare Magento sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno della password per l'autenticazione.

Per connettersi al server come utente root digitare questo comando:
ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare il primo parametro:
ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di Magento su Ubuntu 18.04 LTS.

Installazione Nginx

Per installare Nginx aprire il terminale e dare questi comandi:
sudo apt update

sudo apt install nginx

Se il firewall di Ubuntu è attivo dovete abilitare il traffico per Nginx:
sudo ufw allow 'Nginx HTTP'

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

http://indirizzo_ip

http://localhost

Per riavviare Nginx:
sudo service nginx restart

Per fermare Nginx:
sudo service nginx stop

Per avviare Nginx:
sudo service nginx start

Installare MySQL

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

Installare PHP

Per installare PHP da terminale:
sudo apt install php-fpm php-common php-gettext php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-zip php-curl php-bcmath

sudo phpenmod mbstring

Riavviare PHP:
sudo systemctl restart php7.2-fpm

Configurare Nginx

Aprire il seguente file da FTP o da terminale:
sudo nano /etc/nginx/sites-available/default

Possiamo eliminare tutto il contenuto del file tenendo premuto ctrl+k e successivamente incollare la seguente configurazione:

upstream fastcgi_backend {
         server  unix:/run/php/php7.2-fpm.sock;
}
server {
    listen 80;
    listen [::]:80;
    index  index.php index.html index.htm;
    server_name  localhost;
   
    client_max_body_size 100M;
    set $MAGE_ROOT /var/www/html;
    set $MAGE_MODE developer;
    include /var/www/html/nginx.conf.sample;
}

Chiudere e salvare il file.

Installare MySQL

È possibile installare MySQL utilizzando il repository ufficiale di Ubuntu 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 Magento:
CREATE DATABASE magento DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Uscire da mysql:
exit;

Installare Magento

Dare i seguenti comandi da terminale, entrare nella cartella /var/www/html/:
cd /var/www/html/

Scaricare Magento, attualmente l'ultima versione è la 2.3.1.
Collegarsi al sito ufficiale di Magento e registrarsi gratuitamente.
Bisogna registrarsi prima di poter scaricare una l'ultima versione di Magento Community Edition (Open Source).

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

Dopo il download di Magento, caricarlo sul proprio server nella cartella /var/www/html ed estrarre l'archivio:
sudo unzip Magento-CE-2.3.1-2019-03-18-06-24-49.zip

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

Riavviare nginx:
sudo service nginx restart

Collegarsi al proprio nome dominio:

http://esempio.com

Se l'installazione è stata effettuata in locale sul vostro computer scrivere:

http://localhost/

Dovreste vedere la prima schermata di installazione di Magento.

Il server è pronto per poter installare Magento con LEMP (Nginx, PHP, MySQL) su Ubuntu 18.04 LTS.

Dopo l'installazione, nel pannello admin di Magento, se visualizzate il seguente avviso: One or more indexers are invalid. Make sure your Magento cron job is running, recatevi nella cartella principale di magento:
cd /var/www/html

Dare il seguente comando:
php bin/magento indexer:reindex

La configurazione è terminata.