Magento 2 CLI komande koje svaki administrator treba da zna
Magento 2 CLI komande omogućavaju administratorima i developerima da brže održavaju prodavnicu, proveravaju status sistema i izvršavaju zadatke koji bi kroz Admin panel bili sporiji ili nedostupni. Koriste se na serveru, iz Magento root direktorijuma, gde se nalazi fajl bin/magento.
Pre izvršavanja komandi proverite da li radite u ispravnom Magento direktorijumu, da li koristite odgovarajućeg korisnika i da li imate svež backup. Tačne opcije mogu zavisiti od Magento Open Source ili Adobe Commerce izdanja, kao i od verzije Magento 2 i PHP-a.
Šta je Magento CLI?
Magento CLI je komandna linija dostupna kroz PHP skriptu bin/magento. Svaka komanda ima osnovni oblik:php bin/magento [grupa:komanda] [opcije]
Spisak dostupnih komandi možete proveriti ovako:php bin/magento list
Za pomoć o konkretnoj komandi koristite:php bin/magento help cache:flush
Komande treba izvršavati kao korisnik koji poseduje Magento fajlove ili kroz odgovarajući deployment proces. Ne koristite sudo bez jasnog razloga, jer to može promeniti vlasništvo nad fajlovima i izazvati probleme sa permissions podešavanjima.
Najvažnije Magento 2 CLI komande
1. Čišćenje i pražnjenje cache-aphp bin/magento cache:status
Prikazuje koji Magento cache tipovi su aktivni.php bin/magento cache:clean
Čisti keširane podatke koje Magento može ponovo da generiše. Ovo je obično bezbedniji prvi korak nakon promene konfiguracije ili layouta.php bin/magento cache:flush
Uklanja podatke iz Magento cache storage-a. Koristite ovu komandu oprezno, posebno ako isti Redis ili drugi cache storage koristi više aplikacija, jer može obrisati i podatke koji nisu namenjeni samo Magento aplikaciji.
Preporuka: za uobičajene promene prvo probajte cache:clean. cache:flush koristite kada je potrebno potpuno pražnjenje relevantnog cache storage-a.
2. Provera i regenerisanje indexaphp bin/magento indexer:status
Prikazuje stanje indexera i informaciju da li su podaci ažurirani.php bin/magento indexer:show-mode
Prikazuje da li se indexeri ažuriraju odmah ili prema rasporedu.php bin/magento indexer:reindex
Ponovo generiše sve indexe. Komanda može opteretiti bazu i server, pa je na produkciji pokrenite u terminu manjeg saobraćaja ili kroz kontrolisani deployment.
Za pojedinačni indexer možete navesti njegov identifikator, na primer:php bin/magento indexer:reindex catalog_product_price
Dostupne indexere proverite komandom indexer:info. Ako se indexeri često vraćaju u status „Reindex Required“, proverite cron, database opterećenje i način indeksiranja.
3. Magento cron zadaciphp bin/magento cron:run
Pokreće Magento cron grupu. Jedno pokretanje ne garantuje da će svi zadaci biti završeni, jer pojedini procesi zavise od rasporeda i konfiguracije servera.
Za proveru cron konfiguracije i istorije izvršavanja proverite sistemski cron, logove i Magento tabele namenjene raspoređenim zadacima. Ako emailovi, indexi, sitemap ili queue procesi kasne, cron je jedan od prvih elemenata koje treba proveriti.
4. Promena deployment modaphp bin/magento deploy:mode:show
Prikazuje trenutni deployment mode.php bin/magento deploy:mode:set production
Postavlja production mode i namenjen je produkcionom okruženju. Pre promene napravite backup i izvršite deployment prema proceduri hostinga ili CI/CD sistema.php bin/magento deploy:mode:set developer
Omogućava developersko okruženje sa detaljnijim greškama. Ne preporučuje se na javnoj produkcionoj prodavnici, jer može otkriti interne informacije.
5. Instalacija nadogradnji i Magento setupphp bin/magento setup:upgrade
Primenjuje module schema i data promene koje su definisane u instaliranim modulima. Najčešće se pokreće nakon instalacije ili nadogradnje extension-a.php bin/magento setup:db:status
Proverava da li baza podataka odgovara instaliranim module verzijama i da li postoje neprimenjene promene.
Važno:setup:upgrade nije zamena za backup ili testiranje. Na produkciji ga pokrećite kao deo kontrolisanog deployment procesa, a ne nasumično tokom najvećeg saobraćaja.
6. Dependency injection kompilacijaphp bin/magento setup:di:compile
Generiše dependency injection klase i proxy fajlove. U production deploymentu se često pokreće nakon promene PHP koda, instalacije modula ili promene deployment moda.
Komanda može zahtevati više memorije i vremena. Ako se izvršava u development modu, često nije prvi korak za rešavanje problema; najpre proverite grešku, module i cache.
7. Statički sadržaj i frontend deployphp bin/magento setup:static-content:deploy
Generiše statičke fajlove, kao što su CSS i JavaScript, za aktivne teme i locale. Na produkciji je često efikasnije navesti potrebne locale vrednosti, u skladu sa konfiguracijom prodavnice.
Posle deploy-a proverite permissions, web server cache, CDN i browser cache. Ako se CSS ili JavaScript ne učitava, problem nije uvek u samoj Magento CLI komandi.
8. Maintenance režimphp bin/magento maintenance:enable
Uključuje maintenance režim i sprečava uobičajen pristup prodavnici tokom rizičnih operacija.php bin/magento maintenance:status
Prikazuje da li je maintenance režim aktivan.php bin/magento maintenance:disable
Isključuje maintenance režim nakon završenog deploymenta i provere sajta.
Tokom maintenance režima možete dozvoliti određene IP adrese, ali tačnu sintaksu proverite u pomoći svoje Magento verzije. Ne ostavljajte prodavnicu u maintenance režimu nakon neuspešnog deploymenta bez provere statusa i logova.
9. Provera modulaphp bin/magento module:status
Prikazuje omogućene i onemogućene module.php bin/magento module:enable Vendor_Module
Omogućava određeni modul. Posle toga mogu biti potrebne komande setup:upgrade, setup:di:compile i čišćenje cache-a, u zavisnosti od promene.php bin/magento module:disable Vendor_Module
Onemogućava modul. Ovo može promeniti funkcionalnost prodavnice i izazvati zavisnosti sa drugim modulima, pa komandu prvo testirajte na staging okruženju.
Ne menjajte fajlove direktno u direktorijumu vendor/. Za trajne izmene koristite zvaničan extension mehanizam, custom module ili theme override, u zavisnosti od problema.
10. Provera konfiguracijephp bin/magento config:show
Prikazuje Magento konfiguracione vrednosti dostupne kroz CLI. Za pojedinačnu putanju možete navesti konfiguracioni path, ali pazite da ne izložite lozinke, API ključeve ili druge osetljive podatke u terminalu i logovima.php bin/magento app:config:status
Proverava da li postoje razlike između konfiguracije u fajlovima i deployment stanja, kada se koristi konfiguracija upravljana kroz fajlove.php bin/magento app:config:import
Uvozi konfiguraciju iz konfiguracionih fajlova. Koristite je samo kada je deployment proces pravilno pripremljen i kada razumete koje vrednosti će biti promenjene.
11. Upravljanje administratorskim korisnikomphp bin/magento admin:user:create
Kreira administratorskog korisnika kroz interaktivnu CLI proceduru. Koristite jedinstvenu, jaku lozinku i minimalne potrebne privilegije kroz Admin role podešavanja.
12. Queue i potrošači porukaphp bin/magento queue:consumers:list
Prikazuje dostupne message queue consumere.php bin/magento queue:consumers:start consumer_name
Pokreće određenog consumera. Ova komanda zahteva pravilno podešen message queue sistem i najčešće se ne pokreće ručno kao trajno rešenje na produkciji. Za stalni rad koristite process manager ili konfiguraciju koju preporučuje hosting infrastruktura.
Tipičan redosled nakon promene koda ili modula
Tačan redosled zavisi od deployment procesa, ali čest obrazac izgleda ovako:
1. Napravite backup baze i proverite mogućnost rollback-a.
2. Prebacite aplikaciju u maintenance režim ako promena zahteva prekid rada.
3. Instalirajte ili deploy-ujte kod kroz Composer ili vaš deployment sistem.
4. Pokrenite php bin/magento setup:upgrade ako postoje schema ili data promene.
5. Pokrenite php bin/magento setup:di:compile u production deploymentu kada je potrebno.
6. Pokrenite php bin/magento setup:static-content:deploy ako su promenjeni frontend asseti.
7. Očistite relevantni cache komandom php bin/magento cache:clean.
8. Proverite indexere, cron, logove, checkout, login i ključne stranice.
9. Isključite maintenance režim tek kada je provera završena.
Najčešći problemi pri korišćenju Magento CLI komandi
Ako dobijete grešku „Could not open input file: bin/magento“, verovatno niste u Magento root direktorijumu ili fajl nije dostupan u trenutnoj instalaciji.
Ako se pojavi PHP memory limit greška, proverite CLI PHP konfiguraciju i zahtevane resurse za konkretnu Magento verziju. CLI PHP ne mora koristiti istu konfiguraciju kao PHP koji izvršava web saobraćaj.
Ako komanda prijavi problem sa permissions podešavanjima, proverite vlasništvo nad fajlovima, deployment korisnika i prava web server procesa. Nemojte nasumično koristiti chmod -R 777, jer time stvarate bezbednosni rizik.
Ako promena nije vidljiva, proverite Magento cache, full-page cache, Varnish ili Redis, CDN, browser cache i statičke assete. cache:flush nije univerzalno rešenje za svaki problem sa frontendom.
Prednosti i ograničenja Magento CLI-ja
CLI je brži i precizniji za ponovljive administrativne zadatke, pogodan je za automatizaciju i lako se uklapa u deployment skripte. Omogućava i rad kada Admin panel nije dostupan.
Ograničenje je to što pogrešna komanda može promeniti bazu, konfiguraciju ili produkcioni saobraćaj. Zato destruktivne i produkcione operacije treba prvo testirati na staging okruženju, dokumentovati i izvršavati uz backup i plan povratka.
Preporučena konfiguracija rada
Za produkciju koristite production mode, redovno izvršavanje cron zadataka, kontrolisan deployment i nadzor logova. Za razvoj koristite developer mode, staging podatke i odvojene pristupne podatke. Komande kao što su setup:upgrade, setup:di:compile i setup:static-content:deploy uključite u automatizovan deployment kada je to moguće, umesto ručnog pokretanja bez evidencije.
Da li je posle svake promene potrebno pokrenuti cache:flush?
Ne. Za mnoge promene dovoljan je cache:clean, a ponekad je potrebno osvežiti samo određeni cache tip. Potpuno pražnjenje cache storage-a može biti nepotrebno ili rizično kada ga dele druge aplikacije.
Kada treba pokrenuti indexer:reindex?
Pokrenite ga kada indexer prijavi status „Reindex Required“, nakon određenih promena kataloga ili kada je to deo deployment procedure. Pre toga proverite da li cron i način indeksiranja rade ispravno.
Da li setup:di:compile treba pokretati na svakom serveru?
U production deploymentu često jeste deo procesa, ali tačan postupak zavisi od arhitekture i načina izgradnje aplikacije. Na development okruženju nije uvek potreban nakon svake izmene.
Kako proveriti da li je Magento u maintenance režimu?
Pokrenite php bin/magento maintenance:status. Ako je režim aktivan, nakon uspešne provere koristite php bin/magento maintenance:disable.
Da li Magento CLI komande rade isto u Open Source i Adobe Commerce izdanju?
Osnovne komande su uglavnom zajedničke, ali dodatne komande i funkcije mogu zavisiti od izdanja, instaliranih modula i verzije Magento softvera. Dostupne komande proverite pomoću php bin/magento list.
Najvažnije Magento 2 CLI komande za svakodnevni rad su cache:clean, cache:flush, indexer:status, indexer:reindex, setup:upgrade, setup:di:compile, setup:static-content:deploy i komande za maintenance režim. Koristite ih planski, uz backup, staging test i proveru logova. Za produkciju je najbolje da ponovljive operacije budu deo dokumentovanog deployment procesa.