Magento è la piattaforma di e-commerce di classe enterprise leader nella tecnologia open source che combina potenti funzionalità con flessibilità e interfaccia user-friendly.
Con funzionalità come esperienze di acquisto coinvolgenti, architettura modulare flessibile e scalabilità e prestazioni di livello aziendale, Magento è una piattaforma preferita dalla maggior parte dei commercianti online.
In questo tutorial, ti mostreremo come installare Magento 2.3 su una macchina Ubuntu 18.04. Useremo Nginx come server web, l'ultimo PHP 7.2 e MySQL/MariaDB come server di database.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti prerequisiti prima di continuare con questo tutorial:
- Disponi di un nome di dominio che punta all'IP del tuo server pubblico. Useremo
example.com
. - Nginx viene installato sul tuo server Ubuntu seguendo queste istruzioni.
- Un certificato SSL installato per il tuo dominio per crittografare le informazioni dell'utente. Puoi installare un certificato SSL Let's Encrypt gratuito seguendo queste istruzioni.
Per poter accedere al repository di codice Magento 2 dovrai generare chiavi di autenticazione. Se non hai un account Magento Marketplace, puoi crearne uno qui. Una volta creato l'account, controlla queste istruzioni su come generare un nuovo set di chiavi di autenticazione.
Aggiorna i pacchetti di sistema alle versioni più recenti e installa l'utilità di decompressione:
sudo apt update && sudo apt upgrade
sudo apt install unzip
Creazione del database MySQL #
Se hai MySQL o MariaDB installato sul tuo server puoi saltare questo passaggio, in caso contrario puoi installare il pacchetto del server MySQL 5.7 dai repository predefiniti di Ubuntu digitando:
sudo apt install mysql-server mysql-client
Per nuove installazioni MySQL, si consiglia di eseguire mysql_secure_installation
comando per migliorare la sicurezza del tuo server MySQL. Accedi alla shell MySQL usando il seguente comando:
sudo mysql
Dall'interno della shell MySQL, esegui la seguente istruzione SQL per creare un nuovo database denominato magento
:
CREATE DATABASE magento;
Quindi, crea un account utente MySQL chiamato magento
e concedere le autorizzazioni necessarie all'utente eseguendo il comando seguente:
GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Assicurati di modificare change-with-strong-password
con una password complessa. Al termine, esci dalla console MySQL digitando:
EXIT;
Creazione utente di sistema #
Crea un nuovo utente e gruppo, che sarà proprietario del file system Magento, per semplicità chiameremo l'utente magento
:
sudo useradd -m -U -r -d /opt/magento magento
Aggiungi i www-data
utente al magento
raggruppare e modificare il /opt/magento
permessi di directory in modo che Nginx possa accedere all'installazione di Magento:
sudo usermod -a -G magento www-data
sudo chmod 750 /opt/magento
Installazione e configurazione di PHP #
PHP 7.2, che è la versione PHP predefinita in Ubuntu 18.04, è completamente supportato e consigliato per Magento 2.3. Poiché utilizzeremo Nginx come server web, installeremo anche il pacchetto PHP-FPM.
Esegui il comando seguente per installare PHP e tutti i moduli PHP richiesti:
sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap
Il servizio PHP-FPM si avvierà automaticamente al termine del processo di installazione, puoi verificarlo stampando lo stato del servizio:
sudo systemctl status php7.2-fpm
L'output dovrebbe indicare che il servizio fpm è attivo e in esecuzione.
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-12-12 15:47:16 UTC; 5s ago
Docs: man:php-fpm7.2(8)
Main PID: 16814 (php-fpm7.2)
Status: "Ready to handle connections"
Tasks: 3 (limit: 505)
CGroup: /system.slice/php7.2-fpm.service
Imposta le opzioni PHP richieste e consigliate modificando il php.ini
file con sed
::
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini
Quindi dobbiamo creare un pool FPM per magento
utente.
Apri il tuo editor di testo e crea il seguente file:
sudo nano /etc/php/7.2/fpm/pool.d/magento.conf
/etc/php/7.2/fpm/pool.d/magento.conf[magento]
user = magento
group = www-data
listen.owner = magento
listen.group = www-data
listen = /var/run/php/php7.2-fpm-magento.sock
pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /
Riavvia il servizio PHP-FPM per rendere effettive le modifiche:
systemctl restart php7.2-fpm
Verifica se il socket PHP è stato creato correttamente eseguendo il seguente comando ls:
ls -al /var/run/php/php7.2-fpm-magento.sock
L'output dovrebbe essere simile a questo:
srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=
Installazione del compositore #
Composer è un gestore delle dipendenze per PHP e lo useremo per scaricare il core Magento e installare tutti i componenti Magento necessari.
Per installare composerglobally, scarica il programma di installazione di Composer con curl e sposta il file in /usr/local/bin
directory:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Verifica l'installazione stampando la versione del compositore:
composer --version
L'output dovrebbe essere simile a questo:
Composer version 1.8.0 2018-12-03 10:31:16
Installazione di Magento #
Esistono diversi modi per installare Magento 2. Evita di installare Magento dal repository Github perché quella versione è destinata allo sviluppo e non alle installazioni di produzione.
Al momento della stesura di questo articolo, l'ultima versione stabile di Magento è la versione 2.3.0
. In questo tutorial, installeremo Magento dai loro repository usando il compositore.
Passa all'utentemagento
digitando:
sudo su - magento
Avvia l'installazione scaricando i file magento nella directory /opt/magento/public_html:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html
Ti verrà chiesto di inserire le chiavi di accesso, copiare le chiavi dal tuo account del marketplace Magento e salvarle nel auth.json
file, quindi in seguito, quando aggiorni l'installazione, non devi aggiungere di nuovo le stesse chiavi.
Authentication required (repo.magento.com):
Username: e758ec1745d190320ca246e4e832e12c
Password:
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y
Il comando sopra recupererà tutti i pacchetti PHP richiesti. Il processo potrebbe richiedere alcuni minuti e, se ha esito positivo, la fine dell'output dovrebbe essere simile alla seguente:
Writing lock file
Generating autoload files
Una volta creato il progetto, possiamo avviare l'installazione di Magento. Possiamo installare Magento sia dalla riga di comando che utilizzando l'Installazione guidata web. In questo tutorial installeremo Magento usando la riga di comando.
Useremo le seguenti opzioni per installare il negozio Magento:
- Gli URL di base e di sicurezza di base sono impostati su
https://example.com
, cambialo con il tuo dominio. - Amministratore Magento:
John
Doe
come nome e cognome.[email protected]
come e-mail.john
come nome utente ej0hnP4ssvv0rD
come password.
- Nome database
magento
, nome utentemagento
, passwordchange-with-strong-password
e il server di database si trova sullo stesso host del server web. en_US
, inglese americano come lingua predefinita.USD
dollari come valuta predefinita.America/Chicago
come fuso orario.
Passa a Magento ~/public_html
directory:
cd ~/public_html
Eseguire il comando seguente per avviare l'installazione:
php bin/magento setup:install --base-url=https://example.com/ \
--base-url-secure=https://example.com/ \
--admin-firstname="John" \
--admin-lastname="Doe" \
--admin-email="[email protected]" \
--admin-user="john" \
--admin-password="j0hnP4ssvv0rD" \
--db-name="magento" \
--db-host="localhost" \
--db-user="magento" \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--db-password="change-with-strong-password"
Non dimenticare di cambiare la password (j0hnP4ssvv0rD
) a qualcosa di più sicuro. Il processo potrebbe richiedere alcuni minuti e una volta completato ti verrà presentato un messaggio che contiene l'URI alla dashboard dell'amministratore di Magento.
[Progress: 773 / 773]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_13nv5k
Nothing to import.
Creazione di Magento crontab #
Magento utilizza i lavori cron per pianificare attività come reindicizzazione, notifiche, mappe del sito, e-mail e altro.
Per creare il crontab Magento esegui il seguente comando come magento
utente:
php ~/public_html/bin/magento cron:install
Crontab has been generated and saved
Verifica che crontab sia installato digitando:
crontab -l
#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d
Configurazione di Nginx #
A questo punto dovresti già avere Nginx con certificato SSL installato sul tuo server Ubuntu, in caso contrario controlla i prerequisiti per questo tutorial.
Includeremo la configurazione Nginx predefinita fornita con Magento.
Passa al tuo utente sudo, apri il tuo editor di testo e crea il seguente file:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.comupstream fastcgi_backend {
server unix:/var/run/php/php7.2-fpm-magento.sock;
}
server {
listen 80;
server_name example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
set $MAGE_ROOT /opt/magento/public_html;
set $MAGE_MODE developer; # or production
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;
include /opt/magento/public_html/nginx.conf.sample;
}
Non dimenticare di sostituire example.com con il tuo dominio Magento e impostare il percorso corretto per i file del certificato SSL. Gli snippet utilizzati in questa configurazione vengono creati in questa guida. Prima di riavviare il servizio Nginx fai un test per assicurarti che non ci siano errori di sintassi:
sudo nginx -t
Se non ci sono errori, l'output dovrebbe essere simile a questo:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Infine, riavvia il servizio Nginx digitando:
sudo systemctl restart nginx
Verifica dell'installazione #
Apri il browser, digita il tuo dominio e supponendo che l'installazione sia riuscita, apparirà una schermata simile alla seguente:
Ora puoi andare all'URI di amministrazione di Magento, accedere come utente amministratore e iniziare a personalizzare la tua nuova installazione di Magento.