I comandi shell più usati su Magento 2

Shell Magento 2

Indice dei contenuti


Magento 2 è una piattaforma particolarmente articolata e piena di funzionalità che coprono le molteplici esigenze delle aziende che vendono online. Quando si lavora su questo strumento diventa pertanto fondamentale conoscere i tool più adatti che sono stati messi a disposizione, ad esempio i vari comandi disponibili dalla shell. Se su Magento 1 usare la riga di comando era un’opzione facoltativa, su Magento 2 è diventato indispensabile per effettuare operazioni di manutenzione, installazione e pulizia. In questo articolo vedremo alcuni delle funzionalità più utilizzate su questa piattaforma, con una descrizione dettagliata dei comandi ed esempi pratici relativi all’utilizzo della shell. Ovviamente, raccomandiamo sempre di testare questo tipo di operazioni in un ambiente di prova, effettuando un backup completo di file e database prima di procedere.


Per i blocchi di codice come quello seguente, le parti in grassetto si intendono esemplificative e pertanto da sostituire:

comando magento2 prova

1) Moduli non standard

Per conoscere tutti i moduli di Magento 2 non stardard basta lanciare il seguente comando:

bin/magento module:status | grep -v Magento_

In questo modo sarà possibile scoprire tutti i moduli di terze parti, di modo da poterne analizzare l’effettivo utilizzo nel proprio progetto ed eventualmente eliminare quelli non indispensabili, alleggerendo di conseguenza Magento 2.

2) Verificare se un modulo è attivo

Supponiamo di voler sapere se il modulo “Ittweb_Newsletter” (a titolo di esempio) è attivo o meno sulla propria installazione Magento 2.

Il comando shell in questione è:

bin/magento module:status Ittweb_Newsletter

Per fare la prova del nove, si può inoltre verificare se nella configurazione di Magento 2 il modulo è presente ed attivo (quindi settato a 1) tramite una ricerca grep:

grep 'ittweb_ittweb' -i app/etc/config.php

3) Rimuovere un modulo

In questo caso, a seconda di come è stato installato il modulo, abbiamo due scelte differenti: rimozione tramite Composer o manuale.

Se il modulo è stato installato tramite Composer basta lanciare:

bin/magento module:uninstall --remove-data --clear-static-content Vendor_Name && bin/magento setup:upgrade && composer remove vendor/name

Se invece l’installazione del modulo è stata fatta manualmente, bypassando l’utilizzo di Composer, gli step in questione sono:

  1. rimuovere eventuali tabelle create dal modulo verificando nei file di installazione contenuti all’interno della cartella del modulo
  2. rimuovere eventuali configurazioni relative al modulo presenti nella core_config_data
  3. rimuovere la cartella app/code/Vendor/Name o vendor/name
  4. rimuovere la riga relativa al modulo dal file di configurazione app/etc/config.php
  5. rimuovere il modulo dalla tabella setup_module
  6. lanciare ↓
bin/magento setup:upgrade

4) Installare un modulo tramite Composer

L’utilizzo di Composer nella gestione dei moduli di Magento 2 è fortemente consigliato per mantenere la propria piattaforma organizzata e facilmente manutenibile. Questo tipo di gestione è particolarmente comodo in special modo quando si va ad aggiornare la piattaforma, a disabilitare dei moduli o ad eliminare alcune funzionalità. Per questo motivo, è fondamentale installare qualsiasi modulo tramite Composer, evitando l’installazione manuale.

Se il modulo in questione non fosse presente in un repository online come Github o Packagist, basta creare un proprio repository, caricare il codice del modulo all’interno del repository e verificare che il file composer.json sia presente e correttamente compilato. Nel caso in cui il composer.json non fosse disponibile, basta crearlo ex novo.

Giunti a questo punto e fatte le opportune verifiche, l’installazione si esegue tramite il comando elencato di seguito. In questo specifico esempio, supponiamo di voler caricare un modulo da un repository locale.

composer config repositories.NUM vcs user@local.repository:/folder/to/M2module && composer require VENDOR/MODULENAME:dev-master && bin/magento setup:upgrade && bin/magento c:f && bin/magento c:c && bin/magento indexer:reindex

5) Disattivare la modalità di manutenzione

Quando si aggiorna o si effettuano altre operazioni delicate nella propria installazione di Magento 2, la piattaforma può andare in modalità di manutenzione. Per disattivare questa modalità, il comando shell in questione è:

bin/magento maintenance:disable

6) Indexer bloccato?

Se un indexer rimane in stato di pending è di fondamentale importanza conoscere come stopparlo per poterlo riavviare.

Il primo step consiste nell’ottenere il nome esatto dell’indexer bloccato.

Se non si è a conoscenza del nome esatto, può tornare comodo il seguente comando shell, in cui si ricerca parte del nome:

bin/magento indexer:info | grep 'nome parziale modulo'

Ottenuto il nome, non resta che lanciare:

bin/magento indexer:reset nome_indexer && bin/magento indexer:reindex nome_indexer

La corretta manutenzione su Magento 2 è un aspetto nevralgico dei propri progetti. In questo articolo abbiamo visto alcuni dei comandi shell più comuni relativamente ai moduli e ad altre attività indispensabili per la gestione di Magento 2.

Eventi e Report

Focus Ecommerce ON

Notizie correlate