Come installare Magento 2 su Ubuntu 20.04 LTS

Una guida completa su come configurare e distribuire lo store Magento2 su un server Ubuntu 20.04.

Magento è una popolare piattaforma di eCommerce creata e scritta in PHP, utilizzata da molte piccole imprese per vendere prodotti e creare una presenza online. Ti consente di creare un negozio online completo con funzionalità come gestione dell'inventario, cataloghi prodotti, spedizione, fatturazione e molto altro.

Se stai cercando di creare una piattaforma di shopping elegante e di livello aziendale per la tua attività, Magento dovrebbe essere un ottimo punto di partenza. Quindi, in questa guida, vedremo come configurare Magento community edition versione 2.3 con stack LAMP su un server Ubuntu 20.04.

Prerequisiti

Avrai bisogno di un server Ubuntu 20.04 LTS e di aver effettuato l'accesso come sudo utente abilitato. Avrai anche bisogno di un nome di dominio che punti all'IP del tuo server Ubuntu 20.04. Noi useremo esempio.com ovunque sia richiesto il nome di dominio, sostituiscilo con il tuo dominio. Prima di iniziare, aggiorna l'elenco dei pacchetti e quindi aggiorna i pacchetti sul tuo server Ubuntu 20.04.

sudo apt update && sudo apt upgrade

Installa il server Web Apache

Magento richiede un server web per funzionare, in questa guida abbiamo scelto di eseguire l'applicazione Magento sullo stack LAMP (Linux, Apache, MySQL, PHP). Quindi installeremo tutti i pacchetti costituiti dallo stack LAMP.

Il server Web Apache è uno dei server Web più popolari su Internet con quasi il 37,2% della quota di mercato totale dei server Web. Puoi anche scegliere di installare Magento sullo stack LEMP che utilizza il server web Nginx invece di Apache. Ma in questa guida implementeremo il nostro server Megento con l'aiuto di Apache.

Per installare il server Web Apache, eseguire il comando seguente:

sudo apt install apache2

Inserisci la tua password utente e premi se richiesto. Al termine dell'installazione, è necessario configurare il firewall semplice (UFW) di Ubuntu per consentire il traffico sulla porta 80 & 443.

L'UFW viene fornito con profili preconfigurati che possono essere attivati ​​per consentire all'applicazione di accedere alle porte sul server Ubuntu 20.04. Quindi, quando hai installato il server Web Apache, i profili UFW chiamati "Apache", "Apache Full" e "Apache Secure" sono stati aggiunti all'elenco delle app UFW. Consenti al server web Apache di servire sulla porta 80 & 443 eseguendo:

sudo ufw allow 'Apache Full'

Ora, tutto ciò che dobbiamo fare è abilitare l'UFW, ma prima di farlo assicurati di aver consentito la porta 22 (SSH). Se non modifichi le regole SSH UFW, potresti essere bloccato fuori dal tuo server Ubuntu 20.04.

sudo ufw consenti 'OpenSSH'

Infine, abilita il firewall UFW eseguendo:

sudo ufw enable

premere se ricevi un messaggio che dice che il comando potrebbe interrompere le connessioni SSH, poiché abbiamo già aggiunto una regola per consentire a SSH di attraversarlo. Ora puoi accedere al server Web Apache tramite il browser, digitare l'indirizzo IP del tuo server Ubuntu 20.04 nella barra degli URL e premere invio.

pagina predefinita di apache2 ubuntu

Installa MySQL Server

Avrai anche bisogno di un server di database per eseguire Magento poiché è qui che viene archiviato tutto il contenuto del negozio Magento. Stiamo per installare il server MySQL e creare un utente chiamato magentouser e un database chiamato magento per Magento.

Il pacchetto MySQL si chiama as mysql-server nei repository Ubuntu, installalo eseguendo:

sudo apt install mysql-server

Successivamente, dobbiamo configurare correttamente le impostazioni di sicurezza di MySQL. Fortunatamente, il pacchetto MySQL viene fornito con uno script di sicurezza che semplifica la configurazione del server MySQL. Quindi, esegui questo script eseguendo il seguente comando:

sudo mysql_secure_installation

Ti verranno richieste più domande, queste sono le impostazioni ottimali per il server MySQL:

  • Vuoi configurare il componente CONVALIDA PASSWORD?[s/n]: Invio
  • Esistono tre livelli di criteri di convalida della password.
    • Si prega di inserire 0 = BASSO, 1 = MEDIO e 2 = FORTE: Invio 2
  • Si prega di impostare la password per root qui.
    • Nuova password: inserisci una password per l'utente root di MySQL.
    • Reinserisci la nuova password: ripeti la password scelta.
  • Rimuovere gli utenti anonimi? [s/n]: Invio
  • Non consentire l'accesso come root da remoto? [s/n] : Invio
  • Rimuovere il database di prova e accedervi? [s/n] : Invio
  • Ricaricare le tabelle dei privilegi ora? [s/n] : Invio

Quindi, per verificare e convalidare che il server MySQL sia installato e funzioni correttamente, accedere al server MySQL come utente root tramite:

sudo mysql

Inserisci il tuo sudo password utente quando ti viene chiesto di farlo e premi invio. L'utente root di MySQL usa il unix_socket per autenticare il login. Ciò che essenzialmente significa è che devi essere a sudo utente per accedere al server MySQL come utente root.

Crea un nuovo database e utente per Magento

Ora possiamo creare un utente MySQL per Magento e se hai seguito ogni passaggio di questa guida, devi avere la console MySQL aperta. Crea un database chiamato magento inserendo la seguente query nella console MySQL:

CREA DATABASE magento;

Per creare un nuovo utente MySQL chiamato magentouser, esegui questa query nella console:

CREA UTENTE 'magentouser'@'%' IDENTIFICATO CON mysql_native_password DA 'password';

Nota: Sostituisci il parola d'ordine nella query con una password complessa di tua scelta.

Allora concedi il nuovo magentouser pieno accesso al magento Banca dati:

CONCEDERE TUTTO SU magento.* A 'magentouser'@'%' CON L'OPZIONE DI CONCESSIONE;

Dobbiamo impostare il log_bin_trust_function_creators parametro come 1 in quanto è disabilitato nell'ultima versione di MySQL e senza abilitarlo Magento genera alcuni errori durante l'installazione. Per farlo eseguire la seguente query:

IMPOSTA GLOBALE log_bin_trust_function_creators=1;

Infine, ricarica i privilegi e le impostazioni del database che abbiamo modificato ed esci dalla console utilizzando queste query:

PRIVILEGI DI SCARICO; USCITA;

Installa PHP e le estensioni richieste

Magento richiede PHP e alcune estensioni PHP per funzionare. Al momento della stesura di questo articolo, la versione dell'edizione della community di Magento 2.3 non funziona con l'ultima versione di PHP 7.4 e quindi dobbiamo installare la versione PHP 7.3.

Dobbiamo aggiungere un PPA PHP di terze parti in modo da poter installare la versione PHP 7.3 poiché i repository di Ubuntu hanno solo l'ultima 7.4 pacchi. Aggiungi il PPA e aggiorna l'elenco dei pacchetti eseguendo questi comandi:

sudo add-apt-repository ppa:ondrej/php && sudo apt update

Quindi installa PHP 7.3 e tutti i moduli PHP richiesti da Magento eseguendo il seguente comando:

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

Dopo aver installato PHP 7.3, dobbiamo configurare alcune impostazioni di base consigliate da Magento per funzionare correttamente. Esegui questo comando per aprire il file di configurazione dell'estensione FPM usando nano

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

Ecco alcune delle impostazioni consigliate per la maggior parte dei siti Web Magento.

file_uploads = Attivo allow_url_fopen = Attivo short_open_tag = Attivo memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Salva le modifiche premendo Ctrl+O quindi uscire dall'editor nano premendo Ctrl+X. Ora abbiamo PHP e tutte le estensioni necessarie e quindi possiamo passare a ottenere Magento.

Installa compositore

Composer è un gestore di dipendenze PHP che semplifica l'installazione di framework e librerie PHP. Abbiamo bisogno di Composer per scaricare e installare Magento sul nostro server Ubuntu 20.04.

Il compositore richiede un pacchetto chiamato decomprimere per estrarre le librerie e i framework scaricati, installalo eseguendo:

sudo apt install unzip

Quindi installa il compositore a livello di sistema eseguendo questo comando:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Il comando precedente dovrebbe installare il gestore delle dipendenze Composer sul server Ubuntu 20.04. Verificare che Composer sia installato correttamente eseguendo:

compositore
 PRODUZIONE:  __ / ____/___ ____ ___ ____ ____ ____ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Compositore versione 1.10.8 2020-06- 24 21:23:30 Utilizzo: comando [opzioni] [argomenti] 

Scarica e installa Magento

Ora possiamo passare al download e all'installazione di Magento poiché abbiamo installato e configurato tutti i pacchetti necessari richiesti da Magento.

Creazione di un account Magento

Per scaricare Magento sul tuo server Ubuntu 20.04, avrai bisogno di una chiave di accesso Magento 2. Per ottenere questa chiave di accesso, avrai bisogno di un account Magento. Se non sei registrato e non hai un account Magento, vai su questa pagina e fai clic su "Registrati".

Dopo aver creato un account Magento, sarai in grado di creare una nuova chiave di accesso in modo da poter scaricare Magento 2 sul tuo computer utilizzando il compositore. Puoi visualizzare tutte le tue chiavi di accesso Magento in questa pagina. Se non è presente alcuna chiave di accesso nella scheda Magento 2, fai clic sul pulsante "Crea una nuova chiave di accesso" e assegnagli un nome, quindi premi "OK".

Queste chiavi sono le tue credenziali utilizzate per scaricare Magento 2 dal repository Magento tramite Composer. Useremo queste chiavi quando scarichiamo Magento, ma prima di farlo imposteremo la proprietà della directory e i permessi.

Proprietà pre-installazione e configurazione dei permessi

I permessi dei file possono creare o distruggere la sicurezza di qualsiasi sito Web, quindi è necessario impostare correttamente la proprietà e i permessi della radice dei documenti del server Apache.

Il proprietario predefinito del /var/www/ directory è l'utente root, ma è necessario accedere e modificare i file in questa directory. Inoltre, il server web ha anche bisogno dell'accesso alla radice dei documenti per scrivere e modificare i contenuti del sito Magento.

Quindi, per risolvere questo problema, aggiungeremo l'utente corrente al www-dati gruppo, per farlo eseguire:

sudo usermod -a -G www-data $USER

Il -un-G le opzioni sono importanti in quanto si aggiungono www-dati come gruppo secondario all'account utente, che conserva il gruppo principale dell'utente. Dopo aver aggiunto l'utente al gruppo di server web, cambia il proprietario di /var/www/ e le sue sottodirectory usando questo comando:

sudo chown -R $USER:www-data /var/www/

Ora che abbiamo impostato i permessi di preinstallazione per Magento, possiamo passare al download nella radice dei documenti del server web.

Download di Magento

Ora, a questo punto, dovresti avere un account Magento con chiavi di accesso e permessi di preinstallazione impostati correttamente. Quindi useremo Composer per scaricare Magento nella root dei documenti di Apache e quindi installarlo.

Cambia la directory corrente in /var/www/ quindi il terminale punta verso di esso eseguendo:

cd /var/www/

Esegui il comando seguente per creare un nuovo progetto utilizzando Composer noto come magento.

compositore create-project --repository=//repo.magento.com/ magento/project-community-edition magento

Ti verranno richiesti nome utente e password dopo aver utilizzato il comando precedente. Le chiavi di accesso che abbiamo creato devono essere utilizzate qui. Copia la chiave pubblica e incollala come nome utente, quindi copia la tua chiave privata e incollala nel terminale come password. Quindi premere per salvare le credenziali per un uso futuro.

 Produzione:  Creazione di un progetto "magento/project-community-edition" su "./magento" Avviso da repo.magento.com: non hai fornito le chiavi di autenticazione Magento. Per istruzioni, visita //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Autenticazione richiesta (repo.magento.com): Nome utente: e8b6120dce14c3d982a85525264897c4 Password: Vuoi memorizzare le credenziali per repo.magento.com in /home/ath/.config/composer/auth.json ? [Yn] 

Dopo che Magento e tutte le sue dipendenze sono state scaricate tramite Composer, dobbiamo impostare la proprietà e i permessi per la nuova directory del progetto Magento e anche per i suoi file. Cambia la directory nella radice del progetto Magento:

cd /var/www/magento/

Quindi cambia il proprietario del gruppo della directory del progetto Magento e delle sue sottodirectory eseguendo:

trova il fornitore generato dalla var pub/pub statico/media app/etc -type f -exec chmod g+w {} + && trova il fornitore generato dalla var pub/pub statico/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

Questo comando darà al gruppo webserver (www-dati) permessi per scrivere nelle directory vendor, pub/static, pub/media & app/etc e file al loro interno. Inoltre, renderà il cestino/magento file eseguibile, quindi possiamo eseguirlo e installare Magento sul nostro sistema.

Configurare Apache per Magento

Installeremo Magento tramite la GUI, poiché in questo caso è più intuitivo dell'installazione da CLI. Pertanto, abbiamo bisogno di creare un host virtuale per il server web Apache prima di poter procedere con l'installazione di Magento.

Apri il file host virtuale predefinito di Apache con nano usando il seguente comando:

sudo nano /etc/apache2/sites-available/000-default.conf

Cambia la radice del documento in /var/www/magento e aggiungi il seguente frammento di codice sotto di esso.

 AllowOverride All ServerName example.com ServerAlias ​​www.example.com

Sostituisci il esempio.com in ServerName e ServerAlias ​​con il tuo nome di dominio. I cambiamenti nel tuo 000-default.conf il file dovrebbe assomigliare al testo evidenziato mostrato di seguito. Salva le modifiche premendo Ctrl+O ed esci dall'editor usando Ctrl+X chiavi.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/magento AllowOverride All ServerName example.com ServerAlias ​​www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combinato 

Successivamente, dobbiamo abilitare una mod Apache chiamata as mod_rewrite richiesto da Magento. Fornisce un modo flessibile e potente per manipolare gli URL, quindi abilita la mod eseguendo:

sudo a2enmod riscrivi

Riavvia il server Apache in modo che tutte le modifiche apportate vengano applicate al server:

sudo systemctl riavvia apache2

Installazione di Magento

Possiamo finalmente procedere con l'installazione di Magento, poiché abbiamo tutto ciò che è richiesto da Magento per funzionare. Digita l'indirizzo IP del tuo server Ubuntu 20.04 nella barra degli URL del tuo browser preferito.

Fai clic su "Accetta e configura Magento" per continuare con l'installazione di Magento. Il primo passo del programma di installazione di Magento Web è il controllo della prontezza, che verificherà che tutti i requisiti di Magento siano soddisfatti. Fare clic su "Avvia controllo di prontezza" e al termine del processo, premere su "Avanti".

Il prossimo passo è impostare i dettagli e aggiungere un database per Magento. Abbiamo già creato un utente MySQL per Magento chiamato magentouser e un database chiamato magento nella sezione sopra. Compila i dettagli appropriati in questa sezione, vale a dire il nome utente del server del database, la sua password e il nome del database, quindi premi "Avanti" per procedere.

Il terzo passo nella configurazione di Magento è la configurazione web. Sostituisci l'indirizzo IP dall'input "Indirizzo negozio" con il tuo nome di dominio, se ne hai uno. Non dimenticare di inserire una barra in avanti (/) dopo il nome di dominio, altrimenti l'URL dell'indirizzo dell'amministratore diventa inaccessibile.

Quindi fai clic su Opzioni avanzate e seleziona entrambe le opzioni HTTPS se desideri utilizzare una connessione sicura per il tuo sito Magento. Mantieni il resto delle impostazioni così come sono e premi Avanti.

Nota: Se selezioni le opzioni HTTPS, dovrai ottenere i certificati SSL per esso. Vedremo come ottenere i certificati SSL nella prossima sezione di questo tutorial.

Nelle impostazioni "Personalizza il tuo negozio", dovrai solo cambiare il fuso orario, la valuta predefinita utilizzata nel negozio e la lingua predefinita del negozio in base alle tue esigenze. Guardati intorno queste impostazioni e configurale se necessario, altrimenti fai clic su Avanti per continuare.

Nel quinto passaggio, dovrai creare un account amministratore per la dashboard di amministrazione di Magento. Inserisci un nuovo nome utente per il tuo amministratore e inserisci un indirizzo email fornito dal provider del tuo nome di dominio. Crea una password complessa per l'account amministratore e poi premi Avanti quando hai finito.

L'ultimo e ultimo passaggio consiste nel fare clic sul pulsante "Installa" per confermare le impostazioni e iniziare il processo di installazione. Al termine dell'installazione, l'installazione di Magento ti mostrerà il riepilogo e alcuni dettagli importanti sul tuo sito Magento.

Annota questi dettagli in un luogo sicuro, ad esempio un documento cartaceo offline o in un database protetto. L'indirizzo dell'amministratore di Magento e la chiave di crittografia non dovrebbero mai essere condivisi pubblicamente. La chiave di crittografia viene utilizzata per crittografare il database Magento in modo che i dati dell'utente siano al sicuro, anche in caso di perdita di dati.

Crea un certificato SSL per il tuo sito Magento

Il sito Magento è distribuito ed è possibile accedervi subito dopo il completamento dell'installazione. Ma se vuoi servire il traffico web su HTTPS, dovrai impostare il certificato SSL per il tuo dominio.

Letsencrypt è un'autorità di certificazione senza scopo di lucro che fornisce certificati TLS gratuitamente. Useremo un pacchetto chiamato certibot che aiuta a ottenere il certificato e a configurare automaticamente l'host virtuale Apache. Esegui questo comando nel terminale per installare certbot:

sudo apt install certbot python3-certbot-apache

Per ottenere il tuo certificato da Letsencrypt e configurare l'host virtuale Apache, esegui il seguente comando:

sudo certbot --apache

Certbot inizierà il processo di ottenimento dei certificati da Letsencrypt, fornirà il tuo indirizzo email quando richiesto e poi premerà il tasto Invio. Quindi, digita UN per accettare i termini di servizio di Letsencrypt. Ti verrà chiesto se desideri condividere il tuo indirizzo email con l'EFF, digita o n a seconda della tua scelta.

Successivamente, ti verrà fornito un elenco di nomi di dominio per i quali desideri attivare HTTPS. Digita il numero appropriato corrispondente al tuo nome di dominio e premi Invio.

Dopo aver selezionato il tuo nome di dominio, ti verrà chiesto se desideri reindirizzare il traffico HTTP a HTTPS, digita 2 e premi invio. Certbot ora configurerà automaticamente l'host virtuale Apache per il dominio esempio.com.

Il pacchetto Certbot viene fornito con cronjob che rinnova automaticamente i certificati del server prima che scadano.Verifica se il rinnovo automatico funziona eseguendo:

sudo certbot rinnova --dry-run

L'output sopra indica che il cronjob di rinnovo automatico funziona correttamente. Per confermare che Certbot ha funzionato, apri il browser e visita il tuo dominio //esempio.com.

Allo stesso modo, puoi accedere alla pagina di accesso dell'amministratore utilizzando il //example.com/admin_SecretString, questo URL era alla fine dell'installazione di Magento.

Ora hai installato con successo Magento sul server Ubuntu 20.04 LTS e ora puoi iniziare a personalizzare il tuo negozio in base alle tue esigenze. Per saperne di più su Magento e conoscere lo sviluppo del negozio, vai alla pagina dei documenti Magento.