In questa guida, ti mostreremo come installare Magento 2.4 con stack LEMP su un VPS Ubuntu 20.04.
Magento è una delle piattaforme di eCommerce open source più popolari disponibili, grazie alla sua personalizzazione e flessibilità. Viene creato utilizzando Zend Framework e utilizza MySQL come sistema di gestione del database. Magento offre ai commercianti online un carrello degli acquisti molto flessibile e viene fornito con un ricco set di funzionalità, il che lo rende una scelta eccellente per le aziende che desiderano impostare una fermata online senza problemi.
Installazione di Magento 2.4 con uno stack LEMP su Ubuntu 20.04 dovrebbe richiedere meno di 10 minuti per il completamento. Iniziamo con il tutorial.
Prerequisiti
- Un Ubuntu 20.04 VPS con accesso root abilitato o un utente con privilegi sudo
- 4 GB di RAM o superiore
- Nginx
- MariaDB 10.4
- Elasticsearch 7.6.x perché Magento 2.4 è testato con questa versione
- PHP 7.4 con estensioni bcmath, ctype, curl, dom, gd, hash, iconv, intl, libxml, mbstring, openssl, pdo_mysql, simplexml, soap, xsl e zip abilitate. Inoltre, per motivi di prestazioni, è una buona idea installare e abilitare l'estensione opcache.
- Un nome di dominio valido per l'accesso al sito Web Magento 2. Inoltre, è necessario un certificato SSL valido per accedere al sito Web tramite HTTPS.
Se non hai uno stack LEMP impostato (Nginx, MariaDB, PHP), nessun problema:in questo tutorial tratteremo anche come installarli.
Per iniziare
Innanzitutto, dovremo accedere al nostro server utilizzando SSH. Puoi farlo inserendo questo comando:
ssh root@IP_Address -p Port_number
Sostituisci "root" con un utente che dispone dei privilegi sudo, se necessario. Inoltre, sostituisci "IP_Address" e "Port_Number" con il rispettivo indirizzo IP e numero di porta SSH del tuo server.
Una volta effettuato l'accesso, dovresti aggiornare tutti i pacchetti del tuo sistema operativo Ubuntu alle ultime versioni disponibili.
apt-get update apt-get upgrade
Una volta che tutti i pacchetti del sistema operativo sono aggiornati, riavvia il server se necessario per applicare eventuali nuove modifiche alla configurazione.
Installa LEMP ed Elasticsearch
LEMP è un acronimo che descrive un sistema operativo Linux con Nginx, MySQL (o MariaDB) e PHP. È uno stack generale di applicazioni e server che può fornire la base per molti pacchetti software. Installiamo LEMP sul nostro VPS Ubuntu 20.04.
Installa Nginx
Se sul server è già installato un server Web Apache, arrestare il servizio Apache e disabilitarne l'avvio all'avvio del server:
systemctl stop apache2 systemctl disable apache2
Installa Nginx con il seguente comando:
apt-get install nginx
Questo è tutto ciò che dobbiamo fare con Nginx per ora.
Installa MySQL
Successivamente, installeremo il server del database MySQL, che verrà utilizzato per archiviare i dati del nostro sito Web Magento, come i prodotti, le categorie, i clienti e gli ordini.
Ai fini di questo tutorial, installeremo e utilizzeremo MariaDB. Per installare il server del database MariaDB, inserisci i seguenti comandi:
apt-get install software-properties-common
Dobbiamo aggiungere una chiave per aggiungere il nostro repository MariaDB.
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Ora che abbiamo la chiave, installiamo il repository:
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.4/ubuntu bionic main'
Aggiorna i tuoi repository APT in modo che gli elenchi dei pacchetti vengano letti.
apt update
Infine, possiamo installare MariaDB.
apt install mariadb-server
Una volta installato MariaDB, abilita l'avvio del servizio MariaDB all'avvio del server:
systemctl enable mariadb.service
Verifica lo stato del servizio MariaDB:
systemctl status mariadb.service
Dovrebbe essere in esecuzione. Questo è tutto ciò che dobbiamo fare con MariaDB per ora.
Installa Elasticsearch
Passa a una directory in cui puoi scaricare temporaneamente un file.
cd /opt
Scarichiamo il file del pacchetto Elasticsearch.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-amd64.deb
Installalo eseguendo questo comando successivo:
dpkg -i elasticsearch-7.6.1-amd64.deb
Avvia il servizio Elasticsearch:
systemctl start elasticsearch
Controlla lo stato:
systemctl status elasticsearch
Controlla la versione e altre informazioni su Elasticsearch:
curl -XGET 'http://localhost:9200'
Se tutto sembra normale fino a questo punto, ora possiamo installare PHP.
Installa PHP 7.4
Aggiungi il PPA per PHP 7.4:
add-apt-repository ppa:ondrej/php
Quindi, aggiorna l'elenco dei pacchetti del sistema operativo e installa PHP 7.4 con il seguente comando:
apt-get update apt-get install php7.4
Installa tutte le estensioni PHP richieste con il seguente comando:
apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-bcmath
Una volta che le estensioni PHP sono state installate sul server, installa alcuni altri pacchetti del sistema operativo necessari per l'installazione di Magento 2:
apt-get install git curl software-properties-common
Quindi, apri il file di configurazione PHP principale /etc/php/7.4/fpm/php.ini
:
nano /etc/php/7.4/fpm/php.ini
Modifica le seguenti impostazioni:
file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 zlib.output_compression = On upload_max_filesize = 128M max_execution_time = 600 max_input_time = 900 date.timezone = America/Chicago
Salva e chiudi il file di configurazione PHP.
Crea un database per Magento 2
Proteggi la tua installazione di MariaDB utilizzando mysql_secure_installation
sceneggiatura. Questo script rimuoverà gli utenti anonimi, non consentirà l'accesso root in remoto e rimuoverà il database di prova.
mysql_secure_installation
Ti consigliamo di rispondere a tutte le domande come mostrato di seguito:
Enter current password for root (enter for none): Press [Enter] since no password is set by default Set root password? [Y/n]: N (You can set a password if you like) Remove anonymous users? [Y/n]: Y Disallow root login remotely? [Y/n]: Y Remove test database and access to it? [Y/n]: Y Reload privilege tables now? [Y/n]: Y
Successivamente, creeremo il nostro utente e database MySQL per il nostro sito Web Magento 2. Accedi al tuo server MySQL con il seguente comando e inserisci la tua password di root MySQL quando richiesto:
mysql -u root -p
Per creare un nuovo database per la nostra istanza Magento 2, esegui i seguenti comandi:
mysql> set global log_bin_trust_function_creators=1; mysql> CREATE USER 'magento'@'localhost' IDENTIFIED WITH mysql_native_password BY 'strongPassword'; mysql> create database magentodb; mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost'; mysql> flush privileges; mysql> quit
Assicurati di dare il tuo magento
Utente MariaDB una password reale e sicura.
Installa Magento 2
Ora possiamo procedere con l'installazione di Magento 2. Al momento della stesura di questo articolo, l'ultima versione stabile di Magento è la versione 2.4.
Per prima cosa, vai al repository GitHub e scarica l'ultima versione di Magento con il seguente comando:
mkdir -p /var/www/magento2/ cd /var/www/magento2/ git clone https://github.com/magento/magento2.git /var/www/magento2/
Successivamente, dovremo installare Composer per installare tutti i componenti Magento necessari. Puoi installare Composer semplicemente eseguendo il seguente comando:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
Esegui questi comandi successivi per configurare il compositore.
cd /var/www/magento2 composer install bin/magento setup:install --base-url=http://yourdomain.com/ --db-host=localhost --db-name=magentodb --db-user=magento --db-password=strongPassword --admin-firstname=FirstName --admin-lastname=LastName [email protected] --admin-user=magentoadmin --admin-password=strong-password --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1
Non dimenticare per sostituire il nome di dominio , password del database , nome utente amministratore , password e indirizzo email dell'amministratore di conseguenza.
Una volta completata l'installazione, dovresti ricevere il seguente output:
[Progress: 699 / 701]
Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/magento2/app/etc'
[Progress: 700 / 701]
Write installation date...
[Progress: 701 / 701]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1k4pc0
Nothing to import.
Ricorda l'"URI amministratore Magento". Avrai bisogno di queste informazioni in seguito poiché è l'URL che utilizzerai per accedere al back-end di Magento.
Modifica la proprietà di magento2
directory in www-data
con il seguente comando:
chown -R www-data:www-data /var/www/magento2/
Crea un file di configurazione Nginx
Crea un file di configurazione Nginx con il tuo editor di testo:
nano /etc/nginx/sites-available/magento2
Quindi aggiungi quanto segue come contenuto del file:
upstream fastcgi_backend { server unix:/run/php/php7.4-fpm.sock; } server { server_name yourdomain.com; listen 80; set $MAGE_ROOT /var/www/magento2; set $MAGE_MODE developer; # or production access_log /var/log/nginx/magento2-access.log; error_log /var/log/nginx/magento2-error.log; include /var/www/magento2/nginx.conf.sample; }
Assicurati di aver impostato yourdomain.com
al tuo nome di dominio registrato.
Rimuovere il file di configurazione Nginx predefinito, se non viene utilizzato:
rm -f /etc/nginx/sites-enabled/default
Abilita il file di configurazione di Nginx appena creato, quindi testa la configurazione di Nginx e assicurati che non ci siano errori:
ln -s /etc/nginx/sites-available/magento2 /etc/nginx/sites-enabled/magento2
nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Questo è tutto! Il tuo server web è ora configurato correttamente.
Installa un certificato SSL
Installeremo un certificato SSL gratuito da Let's Encrypt. Installa i pacchetti richiesti eseguendo questo comando:
apt-get install certbot python3-certbot-nginx
Quindi installa un nuovo certificato SSL per il tuo nome di dominio, assicurandoti che yourdomain.com
è impostato sul nome di dominio registrato:
certbot --nginx -dyourdomain.com
-dwww.yourdomain.com
Seleziona "2" e scegli di reindirizzare il traffico HTTP a HTTPS:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Usa i seguenti comandi CLI Magento 2 per aggiornare Magento base-url
e base-url-secure
valori:
cd /var/www/magento2/
php bin/magento setup:store-config:set --base-url="https://yourdomain.com/
"
php bin/magento setup:store-config:set --base-url-secure="https://yourdomain.com/
"
Modifica il file di configurazione di Nginx e abilita HTTP/2:
nano /etc/nginx/sites-enabled/magento2
Sostituisci:
listen 443 ssl;
Con:
listen 443 ssl http2;
Riavvia il servizio Nginx per rendere effettive le modifiche:
systemctl restart cron.service
Installa Cron Job
Magento richiede una configurazione del lavoro cron per molte importanti funzioni di sistema. Creiamo il seguente cron job:
crontab -u www-data -e
Aggiungi questo al file:
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
Salva e chiudi il file.
Riavvia il servizio cron:
systemctl restart cron.service
Questo è tutto! Magento 2 è stato installato con successo sul tuo server.
Puoi accedere al front-end di Magento su http://yourdomain.com
:
Accedi al back-end di Magento 2 su http://
e configura Magento in base alle tue esigenze. Puoi installare estensioni, aggiungere prodotti, categorie e altro.yourdomain.com
/URI amministratore Magento
Sta diventando sempre più importante avere una presenza online nel mondo digitale di oggi. Non è necessario essere un esperto nell'amministrazione del sistema Linux quando utilizzi il nostro hosting Managed Magento:imposteremo tutto per te e lo manterremo, tutto incluso nel nostro VPS. Possiamo anche ottimizzare il tuo server ed eseguire qualsiasi richiesta tu possa avere. Avrai comunque il pieno controllo del tuo server, ma non dovrai mai più affrontare problemi.
Speriamo che questo tutorial ti abbia aiutato a installare Magento 2 sul tuo Ubuntu 20.04 VPS. In tal caso, considera la possibilità di condividere questo post sui social media con le nostre scorciatoie di condivisione o di lasciare un commento qui sotto con qualsiasi domanda o suggerimento che potresti avere. Grazie.