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 🙂