Ricerca nel sito web

Installa il sito eCommerce Magento sul server Ubuntu 22.04 con Nginx


Questo tutorial ti mostrerà come installare Magento su Ubuntu 22.04 con Nginx, MySQL e PHP8.1 (LEMP Stack). Magento è un sistema di gestione dei contenuti (CMS) molto popolare creato appositamente per i venditori di e-commerce per creare i propri negozi online.

Funzionalità di Magento

  • Controllo al 100% dei dati dei clienti.
  • Puoi installarlo sul tuo server e non devi preoccuparti che il tuo negozio venga chiuso da terzi (come Shopify e Amazon).
  • Il generatore di pagine integrato fornisce strumenti moderni di trascinamento della selezione per creare rapidamente contenuti ed esperienze di acquisto accattivanti senza la necessità del supporto degli sviluppatori.
  • Modalità negozio singolo e modalità multi-negozio.
  • Un vasto mercato di estensioni.

Passaggio 1: verificare i requisiti

Ecco cosa dovresti preparare prima di creare il tuo sito e-commerce Magento.

1. Un nome di dominio. Hai bisogno di un nome di dominio, così i visitatori possono utilizzarlo per accedere al tuo negozio di e-commerce. Ho registrato il mio nome di dominio su NameCheap perché il prezzo è basso e danno protezione alla privacy whois gratuitamente a vita.

2. Un server. Per eseguire Magento, è necessario un server con almeno 4 GB di RAM. Se stai cercando un server privato virtuale (VPS), ti consiglio Kamatera VPS, che presenta:

  • Prova gratuita di 30 giorni.
  • A partire da $4 al mese (1 GB di RAM)
  • VPS basato su KVM ad alte prestazioni
  • 9 data center in tutto il mondo, inclusi Stati Uniti, Canada, Regno Unito, Germania, Paesi Bassi, Hong Kong e Israele.

Segui il tutorial collegato di seguito per creare il tuo server VPS Linux su Kamatera.

  • Come creare un server VPS Linux su Kamatera

3. Servizio SMTP. È necessario utilizzare un server SMTP per inviare e-mail per la registrazione dell'account e varie altre notifiche ai tuoi clienti. È possibile utilizzare un servizio di inoltro SMTP gratuito.

Una volta soddisfatti i requisiti di cui sopra, seguire i passaggi seguenti per installare Magento.

Passaggio 2: installa ElasticSearch sul server Ubuntu

SSH nel tuo server Ubuntu 22.04 e aggiorna il software esistente.

sudo apt update && sudo apt upgrade -y

ElasticSearch è un motore di ricerca e analisi veloce e scalabile. Viene utilizzato da Magento come soluzione di ricerca nel catalogo. Possiamo installare Elasticsearch dal repository ufficiale con i seguenti comandi. (Nota: Magento attualmente non è compatibile con ElasticSearch 8. Installeremo ElasticSearch 7.)

Installa il pacchetto apt-transport-https perché il repository ElasticSearch utilizza il protocollo HTTPS.

sudo apt-get install -y apt-transport-https

Aggiungi il repository ElasticSearch.

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

Importa la chiave pubblica GPG ElasticSearch.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

Aggiorna l'indice del repository e installa ElasticSearch.

sudo apt update 

sudo apt install -y elasticsearch default-jre-headless

Quindi avvia ElasticSearch

sudo systemctl enable --now elasticsearch

Controlla lo stato.

systemctl status elasticsearch

Possiamo vedere che ora è abilitato e funzionante e utilizza 2,3 G RAM. (Suggerimento: se questo comando non si chiude immediatamente, premi Q per chiuderlo.)

sudo ss -lnpt | grep 9200

Output di esempio:

Potresti voler ridurre l'utilizzo della memoria di ElasticSearch. Per fare ciò, crea il file /etc/elasticsearch/jvm.options.d/memory.options.

sudo nano /etc/elasticsearch/jvm.options.d/memory.options

Aggiungi le seguenti due righe in questo file.

-Xms1g
-Xmx1g

Ciò significa che la macchina virtuale Java utilizzata da ElasticSearch utilizzerà 1 G RAM. Tieni presente che non dovrebbe esserci spazio all'inizio di ogni riga. Riavviare ElasticSearch affinché la modifica abbia effetto.

sudo systemctl restart elasticsearch

Esegui il comando seguente per verificare se ElasticSearch funziona.

curl http://localhost:9200

Se ElasticSearch funziona correttamente, verrà generato un messaggio come quello riportato di seguito.

{
  "name" : "ubuntu",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "uO_sXa_0T9ua-pkUn3aTbQ",
  "version" : {
    "number" : "7.17.4",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "79878662c54c886ae89206c685d9f1051a9d6411",
    "build_date" : "2022-05-18T18:04:20.964345128Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Se non funziona, riceverai la risposta:

Curl: (52) Empty reply from server

Passaggio 3: scarica Magento sul server Ubuntu

Installa Composer, che è un gestore delle dipendenze PHP.

sudo apt install -y composer

Crea la directory root web per Magento.

sudo mkdir -p /var/www/magento/

Crea la directory .config per l'utente www-data.

sudo mkdir -p /var/www/.config/

Assicurati che l'utente www-data possa scrivere in questa directory.

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

Installa le estensioni PHP necessarie.

sudo apt install -y php-imagick php8.1-fpm php8.1-mbstring php8.1-soap php8.1-bcmath php8.1-xml php8.1-mysql php8.1-common php8.1-gd php8.1-cli php8.1-curl php8.1-zip php8.1-intl

Passare alla directory /var/www/.

cd /var/www/

Crea il progetto Magento.

sudo -u www-data composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento

L'URL repo.magento.com richiede l'autenticazione dell'utente. Vai su https://marketplace.magento.com/ per creare un account, quindi vai a questo URL (https://marketplace.magento.com/customer/accessKeys/) per creare una chiave di accesso per Magento 2. Usa il Chiave pubblica come nome utente e Chiave privata come password.

Successivamente, esegui i seguenti comandi per impostare le autorizzazioni dei file.

cd /var/www/magento/

sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +

sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +

sudo chown -R :www-data .

sudo chmod u+x bin/magento

Passaggio 4: installare il server database MySQL

Magento attualmente supporta: MySQL-8, MySQL-5.7, MariaDB-10.4. MariaDB 10.5 o successiva non è supportata. Il repository Ubuntu 22.04 include MariaDB 10.6, quindi sceglieremo MySQL invece di MariaDB.

Esegui il comando seguente per installare MySQL 8.0 dal repository Ubuntu predefinito.

sudo apt install mysql-server-8.0

Una volta installato, il server MySQL verrà avviato automaticamente, come si può vedere con:

sudo systemctl status mysql

Se non è in esecuzione, puoi iniziare con:

sudo systemctl enable --now mysql

Passaggio 5: crea un database e un utente per il sito Magento

Accedi alla console MySQL come root con il seguente comando.

sudo mysql -u root

Una volta effettuato l'accesso, crea un database per Magento utilizzando il seguente comando. L'ho chiamato magento, ma puoi usare qualsiasi nome tu voglia, ad esempio il nome del tuo sito. (Non tralasciare il punto e virgola.)

CREATE DATABASE magento;

Quindi inserisci il comando seguente per creare un utente del database per Magento. Sostituisci magento_password con la tua password preferita.

CREATE USER 'magento'@'localhost' IDENTIFIED BY 'magento_password';

Successivamente, concedi le autorizzazioni a questo utente.

GRANT ALL PRIVILEGES ON magento.* to 'magento'@'localhost';

Svuota la tabella dei privilegi affinché le modifiche abbiano effetto e quindi esci dalla console MySQL.

FLUSH PRIVILEGES;

EXIT

Passaggio 6: installa Magento sul server Ubuntu

Assicurati di essere nella directory /var/www/magento/.

cd /var/www/magento/

Esegui il comando seguente per installare Magento.

sudo -u www-data bin/magento setup:install --base-url=http://example.com --use-secure=1 --base-url-secure=https://example.com --use-secure-admin=1 --db-host=localhost --db-name=magento --db-user=magento --db-password=magento_password --admin-firstname=super --admin-lastname=admin --admin-email=[email  --admin-user=admin --admin-password=admin_password --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --elasticsearch-host=http://127.0.0.1 --elasticsearch-port=9200 --elasticsearch-enable-auth=0

Sostituire :

  • example.com con il tuo vero nome di dominio.
  • magento_password con la password creata nel passaggio 5.
  • [email con il tuo indirizzo email di amministratore preferito.
  • admin_password con la tua password amministratore preferita.

Il processo di installazione è piuttosto veloce. Come puoi vedere, Magento è installato con successo.

Se riscontri il seguente errore nel processo di installazione, è perché ElasticSearch non è in esecuzione o lo hai configurato in modo errato.

 Could not validate a connection to Elasticsearch. No alive nodes found in your cluster

Ora crea lavori Magento Cron.

sudo -u www-data php8.1 bin/magento cron:install

Ciò aggiungerà il processo cron nel file crontab dell'utente www-data. Puoi verificarlo con:

sudo -u www-data crontab -l

Produzione :

#~ MAGENTO START d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.1 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO END d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c

Il programma di installazione di Magento ci fornisce l'URI di amministrazione. Ogni Magento può avere un URI di amministrazione univoco, quindi è necessario ricordarlo o aggiungerlo ai segnalibri nel tuo browser web. Successivamente, dobbiamo configurare il server web Nginx per accedere al pannello di amministrazione.

Passaggio 6: configurare l'host virtuale Nginx

Installa il server web Nginx.

sudo apt install nginx

Rimuovi l'host virtuale predefinito.

sudo rm /etc/nginx/sites-enabled/default

Magento viene fornito con un file di configurazione Nginx di esempio nella directory /var/www/magento/. Spostalo nella directory /etc/nginx/conf.d/.

sudo mv /var/www/magento/nginx.conf.sample /etc/nginx/conf.d/magento.sample

Creiamo un nuovo file host virtuale per Magento nella directory /etc/nginx/conf.d/. Il nome del file deve terminare con .conf.

sudo nano /etc/nginx/conf.d/magento.conf

Inserisci i seguenti testi nel file. Sostituisci i testi rossi con il tuo nome di dominio. Non dimenticare di creare record DNS A per il tuo nome di dominio nell'editor della zona DNS.

upstream fastcgi_backend {
   server unix:/var/run/php/php8.1-fpm.sock;
}

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  set $MAGE_ROOT /var/www/magento/;
  include /etc/nginx/conf.d/magento.sample;
  client_max_body_size 2M;

  access_log /var/log/nginx/magento.access;
  error_log /var/log/nginx/magento.error;
}

Salva e chiudi il file. Quindi testa le configurazioni Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx.

sudo systemctl reload nginx

Aprire le porte TCP 80 e 443 nel firewall.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Inserisci il tuo nome di dominio nella barra degli indirizzi del browser e verrà visualizzata la pagina Magento predefinita.

example.com

Passaggio 7: abilitare HTTPS

Per crittografare il traffico HTTP, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui il comando seguente per installare il client Let's Encrypt (certbot) sul server Ubuntu 22.04.

sudo apt install certbot python3-certbot-nginx

Ed esegui questo comando per ottenere e installare il certificato TLS.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email  -d example.com,www.example.com

Dove

  • --nginx: utilizza il plugin Nginx.
  • --agree-tos: accetta i termini di servizio.
  • --no-eff-email: non iscriverti alla mailing list EFF.
  • --redirect: forza HTTPS tramite reindirizzamento 301.
  • --hsts: aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --staple-ocsp: abilita la pinzatura OCSP. Una risposta OCSP valida viene fissata al certificato offerto dal server durante TLS.
  • --email: email utilizzata per la registrazione e il contatto di recupero.
  • Il flag -d è seguito da un elenco di nomi di dominio, separati da virgola. Puoi aggiungere fino a 100 nomi di dominio.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

Se ricarichi la home page di Magento, puoi vedere che HTTP viene automaticamente reindirizzato alla connessione HTTPS.

Passaggio 8: configurare l'inoltro SMTP

Prima di accedere al pannello di amministrazione di Magento, devi assicurarti che SMTP funzioni perché Magento richiede che imposti l'autenticazione a due fattori. Non potrai accedere se non lo configuri.

Segui il tutorial collegato di seguito per configurare l'inoltro SMTP Postfix. Ciò consentirà anche a Magento di inviare e-mail ai tuoi clienti.

  • Come configurare l'inoltro SMTP Postfix sul server Ubuntu con Sendinblue

Passaggio 9: accedi al pannello di amministrazione di Magento

Ora puoi accedere al pannello di amministrazione di Magento. Se non ricordi l'URI di amministrazione, esegui il comando seguente per visualizzarlo sulla riga di comando.

sudo -u www-data php8.1 /var/www/magento/bin/magento info:adminuri

Quando accedi con l'account amministratore, devi utilizzare il tuo nome utente, non l'indirizzo email dell'amministratore. Al primo accesso è necessario configurare l'autenticazione a due fattori.

Pannello di amministrazione di Magento

Se il dashboard di amministrazione visualizza il seguente messaggio.

One or more indexers are invalid. Make sure your Magento cron job is running.

Puoi reindicizzare manualmente.

sudo -u www-data /usr/bin/php8.1 /var/www/magento/bin/magento indexer:reindex

Crea utenti amministratori aggiuntivi

Può essere utile creare più utenti amministratori quando si lavora con un team perché un account può essere utilizzato da una sola persona contemporaneamente.

sudo -u www-data php8.1 /var/www/magento/bin/magento admin:user:create

Aumenta il limite di dimensione del file di caricamento

Per impostazione predefinita, file come immagini e file PDF caricati nella libreria multimediale Magento non possono essere più grandi di 2 MB. Per aumentare il limite delle dimensioni di caricamento, modifica il file di configurazione PHP.

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

Trova la riga seguente (riga 846).

upload_max_filesize = 2M

Modificare il valore come di seguito:

upload_max_filesize = 20M

Quindi trovare la riga seguente (riga 694).

post_max_size = 8M

Modifica la dimensione massima dei dati POST che PHP accetterà.

post_max_size = 20M

Salva e chiudi il file. In alternativa, è possibile eseguire i due comandi seguenti per modificare il valore senza aprire manualmente il file.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/8.1/fpm/php.ini

sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/8.1/fpm/php.ini

Quindi riavvia PHP-FPM.

sudo systemctl restart php8.1-fpm

Nginx imposta anche un limite per la dimensione del file da caricare. Il limite massimo predefinito per la dimensione del file di caricamento impostato da Nginx è 1 MB. Per consentire il caricamento di file di grandi dimensioni sul tuo sito Magento, modifica il file di configurazione Nginx.

sudo nano /etc/nginx/conf.d/magento.conf

Abbiamo già impostato la dimensione massima del file in questo file, come indicato da

client_max_body_size 2M;

Puoi cambiarlo se preferisci, come 20M.

client_max_body_size 20M;

Salva e chiudi il file. Quindi ricarica Nginx affinché le modifiche abbiano effetto.

sudo systemctl reload nginx

Come eseguire il backup di Magento

Puoi scegliere l'approccio tradizionale per eseguire il backup del database MySQL e dei file web (/var/www/magento/).

  • Backup e ripristino dei database MariaDB dalla riga di comando
  • Usa Duplicati per eseguire il backup dei file su Debian, Ubuntu (backup crittografato automatizzato)

Backup integrati in Magento

In alternativa, puoi utilizzare la funzionalità integrata di Magento per eseguire i backup. Abilita la funzionalità di backup.

sudo -u www-data php8.1 /var/www/magento/bin/magento config:set system/backup/functionality_enabled 1

Effettua il backup del codice e dei file di configurazione:

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:backup --code

Effettua il backup del supporto:

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:backup --media

Effettua il backup completo del database.

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:backup --db

I backup sono archiviati in /var/www/magento/var/backups/.

Come ripristinare Magento

Ripristina il codice

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:rollback --code-file=code_filename

Ripristinare il supporto

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:rollback --media-file=meida_filename

Ripristinare il database.

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:rollback --db-file=db_filename

Quindi svuota la cache di Magento.

sudo -u www-data php8.1 /var/www/magento/bin/magento cache:flush
sudo -u www-data php8.1 /var/www/magento/bin/magento cache:clean

Disabilita la modalità di manutenzione.

sudo -u www-data php8.1 /var/www/magento/bin/magento maintenance:disable

Se riscontri il seguente errore durante il processo di rollback, puoi ignorarlo.

Deprecated Functionality: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /var/www/magento/vendor/magento/zendframework1/library/Zend/Db/Statement.php on line 222

In Mysql.php line 109:
                                                                                                                                                                            
  SQLSTATE[HY000]: General error: 1100 Table 'queue_lock' was not locked with LOCK TABLES, query was: DELETE FROM `queue_lock` WHERE (created_at <= '2022-06-18 14:09:35')  
                                                                                                                                                                            

In Mysql.php line 90:
                                                                                           
  SQLSTATE[HY000]: General error: 1100 Table 'queue_lock' was not locked with LOCK TABLES  

Se si verifica il seguente errore,

The rollback can't be executed because not all files are writable.

allora dovresti eseguire il ripristino come root.

sudo php8.1 /var/www/magento/bin/magento setup:rollback --code-file=code_filename

Una volta completato il ripristino, modifica la proprietà del file.

sudo chown www-data:www-data /var/www/magento/ -R

Ripristina il database Magento tramite MySQL

Una buona pratica è creare un altro database come magento_restore, quindi ripristinare con il file .sql.

CREATE DATABASE magento_restore;

GRANT ALL PRIVILEGES ON magento_restore.* to 'magento'@'localhost';

Abilita la modalità di manutenzione.

sudo -u www-data php8.1 /var/www/magento/bin/magento maintenance:enable

Quindi utilizzare il comando MySQL per ripristinare il database in questo modo:

sudo mysql -u root magento_restore < /var/www/magento/var/backups/1655562157_db.sql

Quindi modifica il file env.php.

sudo nano /var/www/magento/app/etc/env.php

Modificare il nome del database:

'host' => '127.0.0.1',
'dbname' => 'magento_restore',
'username' => 'magento',
'password' => 'magento_password',

Salvare il file. Quindi svuota la cache.

sudo -u www-data php8.1 /var/www/magento/bin/magento cache:flush
sudo -u www-data php8.1 /var/www/magento/bin/magento cache:clean
sudo chown www-data:www-data /var/www/magento/var/cache/ -R

Disattiva la modalità di manutenzione:

sudo -u www-data php8.1 /var/www/magento/bin/magento maintenance:disable

Se riscontri il seguente errore, probabilmente è perché i dettagli del database nel file env.php sono errati.

There are no commands defined in the "cache" namespace.

Crea lavori Cron per automatizzare il backup

Modifica il file crontab dell'utente www-data.

sudo -u www-data crontab -e

Aggiungi la seguente riga a questo file.

@daily php8.1 /var/www/magento/bin/magento config:set system/backup/functionality_enabled 1 ; php8.1 /var/www/magento/bin/magento setup:backup --code ; php8.1 /var/www/magento/bin/magento setup:backup --media ; php8.1 /var/www/magento/bin/magento setup:backup --db

Salva il file e il gioco è fatto.

Come aggiornare Magento

Aggiorna l'applicazione Magento, i dati DB e lo schema.

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:upgrade

Suggerimenti per la risoluzione dei problemi

Potresti riscontrare vari problemi in Magento in futuro, ecco alcuni consigli pratici per risolverli 🙂

Controlla i registri

Puoi controllare il registro degli errori di Nginx /var/log/nginx/magento.error. Magento ha anche i suoi log in /var/www/magento/var/log/.

La classe non esiste

Se riscontri un errore come quello riportato di seguito.

main.CRITICAL: Class Magento\Framework\Session\Config\ConfigInterface\Proxy does not exist {"exception":"[object] (ReflectionException(code: -1): Class Magento\\Framework\\Session\\Config\\ConfigInterface\\Proxy does not exist at /var/www/magento/vendor/magento/framework/Code/Reader/ClassReader.php:24)"} []

Ecco la soluzione.

sudo chown www-data:www-data /var/www/magento/ -R
sudo chown www-data:www-data /var/www/magento/var/cache/ -R
sudo -u www-data php8.1 /var/www/magento/bin/magento setup:di:compile

Quindi svuota la cache di Magento.

sudo -u www-data php8.1 /var/www/magento/bin/magento cache:flush
sudo -u www-data php8.1 /var/www/magento/bin/magento cache:clean

Errore 503 (servizio non disponibile)

L'errore 503 significa che c'è un problema nel codice dell'applicazione Magento. Ecco la soluzione:

sudo chown www-data:www-data /var/www/magento/ -R

sudo chown www-data:www-data /var/www/magento/var/cache/ -R

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:di:compile

Svuota la cache di Magento.

sudo -u www-data php8.1 /var/www/magento/bin/magento cache:flush
sudo -u www-data php8.1 /var/www/magento/bin/magento cache:clean

Abilita la modalità produzione

sudo -u www-data php8.1 /var/www/magento/bin/magento deploy:mode:set production

Se questo errore persiste ancora, è necessario disabilitare la modalità di manutenzione come descritto di seguito.

Impossibile procedere: la modalità di manutenzione è abilitata

Mostra la modalità corrente:

sudo -u www-data php8.1 /var/www/magento/bin/magento maintenance:status

Disabilita la modalità di manutenzione.

sudo -u www-data php8.1 /var/www/magento/bin/magento maintenance:disable

Ancora nessun successo? Prova a riavviare il server.

Abilita la modalità debug

A volte vedrai il seguente errore.

An error occurred during application run, see exception log for more details.

Ma il registro delle eccezioni non dice nulla su questo errore. In questo caso, puoi abilitare la modalità di debug in modo da avere più indizi per scoprire la causa del problema.

sudo -u www-data php8.1 /var/www/magento/bin/magento deploy:mode:set developer

Al termine del debug, è possibile abilitare la modalità di produzione

sudo -u www-data php8.1 /var/www/magento/bin/magento deploy:mode:set production

Ridimensiona le immagini del catalogo

Puoi ridimensionare tutte le immagini dei prodotti per visualizzarle sulla tua vetrina con il seguente comando.

sudo -u www-data php8.1 /var/www/magento/bin/magento catalog:images:resize

Per impostazione predefinita, questo comando viene eseguito in modalità sincrona. Se viene visualizzato un avviso come quello riportato di seguito, il ridimensionamento dell'immagine verrà interrotto.

Warning: getimagesize(): corrupt JPEG data: 8723 extraneous bytes before marker

È possibile eseguire il ridimensionamento dell'immagine in modalità sincrona. In questo modo, tutte le immagini dei prodotti verranno ridimensionate ed elaborate in background.

sudo -u www-data php8.1 /var/www/magento/bin/magento catalog:images:resize --async

Se esegui il comando htop, troverai il seguente lavoro in esecuzione.

bin/magento queue:consumer:start media.storage.catalog.image.resize

Per elencare le attività in coda, esegui il comando seguente.

sudo -u www-data php8.1 /var/www/magento/bin/magento queue:consumers:list

Impossibile annullare la serializzazione del valore

Se Magento visualizza l'errore Impossibile annullare la serializzazione del valore, è possibile che sul tuo sistema sia in esecuzione un server Redis. Dovresti riavviare redis-server.

sudo systemctl restart redis-server

Spazio esaurito sul disco?

Se il tuo server esaurisce lo spazio su disco, MySQL/MariaDB ed Elasticsearch fallirebbero. Puoi utilizzare l'utilità della riga di comando ncdu per scoprire quali directory utilizzano più spazio su disco

sudo apt install ncdu

Dopo aver rimosso i file e le directory non necessari per recuperare spazio su disco, riavvia MySQL/MariaDB ed Elasticsearch.

sudo systemctl restart mysql elasticsearch

SQLSTATE[HY000] [2002] Connessione scaduta

Questo errore indica che il codice Magento non può accedere al database MySQL. Controlla le credenziali di accesso SQL nel file /var/www/magento/app/etc/env.php. Assicurati che sia corretto. Se hai dimenticato la password dell'utente SQL, utilizza il seguente comando nella console SQL per reimpostarla.

ALTER USER 'magento'@'localhost' IDENTIFIED BY 'magento_password';

404 Non trovato per l'URL di amministrazione

Modifica l'URI di amministrazione

sudo -u www-data php8.1 /var/www/magento/bin/magento setup:config:set --backend-frontname="admin_path"

Abilita la modalità produzione

sudo -u www-data php8.1 /var/www/magento/bin/magento deploy:mode:set production

Svuota la cache di Magento.

sudo -u www-data php8.1 /var/www/magento/bin/magento cache:flush
sudo -u www-data php8.1 /var/www/magento/bin/magento cache:clean

Se hai configurato la cache di Varnish per Magento, devi anche riavviare Varnish.

sudo systemctl restart varnish

Accettare pagamenti Bitcoin dai clienti

Puoi configurare il server BTCPAY, in modo da poter accettare pagamenti Bitcoin dai clienti. BTCPAY Server può essere facilmente integrato con Magento con un plugin. Può anche generare automaticamente fatture e integrarsi con QuickBooks Online per rendere la contabilità un gioco da ragazzi.

  • Come configurare il server BTCPay su Ubuntu con Docker

Avvolgendo

Spero che questo tutorial ti abbia aiutato a installare Magento su Ubuntu 22.04 con Nginx, MySQL e PHP8.1 (stack LEMP). Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere ulteriori suggerimenti e trucchi. Abbi cura di te 🙂

Articoli correlati