Hai installato un’estensione su Magento e il negozio è comparso senza stile, solo testo e link blu. Oppure un errore che parla di classi «non trovate». Oppure ogni pagina, dopo un aggiornamento, è diventata lentissima. Sono tre facce dello stesso tema: la modalità produzione di Magento, con la compilazione del codice e la generazione dei contenuti statici. Vediamo cosa sono e qual è la sequenza giusta da seguire dopo ogni intervento.

Le modalità di Magento

Magento può funzionare in diverse modalità:

Modalità Per cosa Comportamento
Predefinita appena installato una via di mezzo, non ottimizzata per nessuno dei due usi
Sviluppo chi scrive codice genera i file al volo, mostra gli errori in dettaglio, controlla di continuo se qualcosa è cambiato
Produzione il negozio aperto ai clienti usa codice già compilato e file statici già pronti; non genera nulla al volo

Un negozio aperto al pubblico deve stare in modalità produzione. È più veloce, è più sicura perché non mostra dettagli tecnici agli errori, ed evita che Magento scriva file durante le visite. Puoi controllare la modalità con:

bin/magento deploy:mode:show

Cosa vuol dire «compilare»

Magento è costruito in modo che i moduli possano modificare il comportamento di altri moduli senza toccarne il codice. Per far funzionare questo meccanismo, Magento genera una grande quantità di codice di supporto e una mappa di come i pezzi si collegano fra loro. In sviluppo lo genera quando serve; in produzione lo genera tutto in anticipo, con il comando:

bin/magento setup:di:compile

Se aggiungi o aggiorni un modulo e non ricompili, il negozio usa ancora la vecchia mappa: il risultato sono errori su classi mancanti o comportamenti strani.

Cosa sono i contenuti statici

I fogli di stile, gli script e le immagini del tema non vengono serviti così come sono nei file sorgente: Magento li elabora e li copia, per ogni tema e ogni lingua, in una cartella pubblica. È la generazione dei contenuti statici:

bin/magento setup:static-content:deploy it_IT en_US

Al comando si indicano le lingue usate dal negozio. Se manca questo passaggio, o se una lingua viene dimenticata, le pagine compaiono senza stile: è il sintomo classico del «negozio diventato tutto testo».

La sequenza dopo ogni intervento

Ogni volta che installi, aggiorni o rimuovi un’estensione, cambi tema o aggiorni Magento, in modalità produzione la sequenza tipica è questa:

  1. bin/magento maintenance:enable — mette il negozio in manutenzione;
  2. bin/magento setup:upgrade — aggiorna database e configurazione dei moduli;
  3. bin/magento setup:di:compile — compila il codice;
  4. bin/magento setup:static-content:deploy it_IT (più le altre lingue) — genera i file statici;
  5. bin/magento cache:flush — svuota la cache;
  6. bin/magento maintenance:disable — riapre il negozio.

La documentazione ufficiale descrive le varianti (ad esempio come mantenere il codice già compilato durante l’aggiornamento del database). Il principio non cambia: dopo un intervento sul codice, il negozio in produzione va ricompilato e i contenuti statici rigenerati, e solo alla fine si riapre.

Passare in produzione per la prima volta con bin/magento deploy:mode:set production esegue già compilazione e generazione dei contenuti statici.

Le accortezze pratiche

Serve la riga di comando

Tutti questi passaggi si fanno da terminale. Da noi l’accesso SSH è disponibile sulla porta 7530, con il nome utente del tuo account e l’indirizzo del server indicato nell’email di attivazione. Se stai pianificando un intervento su Magento, aggiungi la tua chiave SSH dal pannello prima di cominciare.

La versione di PHP della riga di comando

Prima di lanciare i comandi, verifica con php -v che la riga di comando usi la stessa versione di PHP del sito, scelta dal pannello DirectAdmin. Compilare con una versione e servire il negozio con un’altra è una fonte di errori difficili da interpretare. Se non coincidono, chiedici quale comando usare.

Memoria e tempo

Compilazione e generazione dei contenuti statici sono operazioni pesanti: richiedono parecchia memoria e, su negozi con molti moduli, temi e lingue, anche diversi minuti. Se un comando si interrompe per mancanza di memoria, non ripeterlo a oltranza: scrivici, e troviamo insieme il modo corretto di eseguirlo sul tuo piano.

Mai nelle ore di punta

Durante la sequenza il negozio è in manutenzione. Pianifica gli interventi in un orario tranquillo e, per le modifiche importanti, provale prima su una copia.

Attenzione ai permessi

I file generati devono appartenere all’utente del negozio. Se lanci i comandi sempre con il tuo utente SSH, il problema non si pone; se nella catena entrano altri strumenti, controlla che i file generati siano leggibili dal sito.

Le cache, alla fine

In produzione tutte le cache interne di Magento devono essere attive. Dopo un intervento controlla con:

bin/magento cache:status

Capita spesso che qualcuno disattivi una cache durante un lavoro e si dimentichi di riattivarla: il negozio funziona, ma più lentamente. Per cache e sessioni puoi anche usare Redis, attivabile dal pannello.

Prima di tutto, un backup

Il tuo account è protetto da JetBackup, con almeno due copie al giorno conservate 30 giorni. Prima di installare o aggiornare un’estensione, però, verifica di avere una copia recente di file e database: se l’aggiornamento del database va male, è la via più rapida per tornare indietro. Ricorda che le cartelle di cache e gli archivi lasciati nello spazio web sono esclusi dai backup.

In breve

  • negozio aperto = modalità produzione;
  • dopo ogni intervento sul codice: aggiornamento, compilazione, contenuti statici, cache;
  • pagine senza stile = contenuti statici mancanti o incompleti;
  • errori su classi mancanti = compilazione da rifare;
  • stessa versione di PHP per riga di comando e sito.

Gestisci un negozio Magento e vuoi un ambiente preparato per questo lavoro? Trovi i dettagli sulla pagina dell’hosting Magento.

Altri articoli su E-commerce

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS