Magento (danes uradno Adobe Commerce, njegova brezplačna različica pa Magento Open Source) je eden najmočnejših mehanizmov spletnih trgovin: več tisoč ali več sto tisoč izdelkov, več trgovin in jezikov v enem sistemu, zapleteno oblikovanje cen, funkcije B2B. Njegova moč pa zahteva vire. Trgovina Magento 2 potrebuje veliko več pomnilnika, procesorja in dodatnih storitev kot spletna trgovina WordPress/WooCommerce, zato je izbira gostovanja tu posebej pomembna.
V tem vodniku povzemamo sistemske zahteve Magenta 2, pojasnimo, zakaj deljeno gostovanje zanj ni primerno, kako velik VPS potrebuješ, kako ga nastaviš za hitro delovanje in na kaj paziti pri varnosti in varnostnem kopiranju.
Zakaj je Magento tako zahteven?
Magento je modularen sistem iz številnih plasti: ob vsakem nalaganju strani naloži veliko razredov PHP, izvaja zapletene poizvedbe v podatkovno bazo (podatki o izdelkih so v strukturi EAV, v številnih tabelah), iskanje, predpomnilnik in opravila v ozadju pa prepušča ločenim storitvam. Hitra trgovina Magento zato ni ena sama aplikacija PHP, temveč usklajeno delovanje celotnega programskega sklada.
Sistemske zahteve Magenta 2
Magento Open Source 2.4.8 in novejše različice običajno zahtevajo naslednje okolje (natančne različice vedno preveri v dokumentaciji trenutne izdaje):
| Komponenta | Zahteva |
|---|---|
| Operacijski sistem | Linux (na primer Ubuntu, Debian, AlmaLinux, Rocky Linux) |
| Spletni strežnik | Nginx (priporočeno) ali Apache |
| PHP | 8.3 ali 8.4, s številnimi razširitvami (bcmath, intl, soap, sodium, xsl, zip itd.) |
| Podatkovna baza | MySQL 8.4 ali MariaDB 11.4 |
| Iskalnik | OpenSearch (obvezen, od Magenta 2.4 vgrajenega iskanja ni) |
| Predpomnilnik, seje | Redis ali Valkey |
| Predpomnilnik strani | Varnish (priporočeno v živem okolju) |
| Čakalna vrsta sporočil | RabbitMQ (pri večjih trgovinah) |
| Drugo | Composer, cron, dostop SSH |
| Pomnilnik PHP | Vsaj 2 GB memory_limit, za namestitev in posodobitev več |
Ali zadošča deljeno gostovanje?
Od Magenta 2.4 ne. Za delovanje sistema je potrebna iskalna storitev OpenSearch, ločena aplikacija Java, ki porabi veliko pomnilnika; deljena gostovanja je ne poganjajo. Poleg tega namestitev in posodobitev Magenta ter ustvarjanje statičnih datotek zahtevajo SSH, Composer in veliko pomnilnika, opravila v ozadju pa cron, ki teče vsako minuto. Majhna testna trgovina se na zmogljivejšem gostovanju morda zažene, za živo spletno trgovino pa je Magento vredno poganjati na VPS ali namenskem strežniku.
Če zaganjaš manjšo spletno trgovino in ne potrebuješ posebnih funkcij Magenta, WooCommerce dobro teče tudi na deljenem gostovanju in je njegovo upravljanje veliko cenejše.
Kako velik VPS potrebuješ?
OpenSearch, Redis, podatkovna baza in PHP-FPM skupaj že pri majhni trgovini zahtevajo precej pomnilnika.
| Trgovina | vCPU | RAM | NVMe |
|---|---|---|---|
| Razvojna ali testna trgovina | 2–4 | 8 GB | 80 GB |
| Majhna živa trgovina (nekaj tisoč izdelkov) | 4 | 8–12 GB | 80–120 GB |
| Srednja trgovina (več deset tisoč izdelkov, redne kampanje) | 6–8 | 16–24 GB | 160–240 GB |
| Velika trgovina | 12–16 ali več strežnikov | 32 GB ali več | 320 GB ali več |
Pri veliki trgovini je vredno podatkovno bazo in OpenSearch postaviti na ločen strežnik. Paketi KVM VPS aWh segajo do 16 vCPU in 32 GB pomnilnika, s procesorjem AMD Epyc in NVMe SSD; za Magento priporočamo vsaj paket AMD VPS 8 (4 vCPU, 8 GB). Ko ga preraseš, lahko preklopiš na večji paket.
Kdo ga upravlja? Nastavitev in vzdrževanje strežnika Magento je resna skrbniška naloga. Če za to nimaš strokovnjaka, v naši storitvi upravljanega VPS namestitev, nastavitev in nadzor strežnika opravimo mi.
Tako bo Magento hiter
- Produkcijski način. Živa trgovina naj vedno teče v načinu
production, s predhodno ustvarjenimi statičnimi datotekami in prevedeno kodo (bin/magento deploy:mode:set production). - Varnish za predpomnjenje celotnih strani. Deluje tudi vgrajeni predpomnilnik strani Magento, vendar je Varnish pri velikem prometu veliko hitrejši.
- Redis ali Valkey za predpomnilnik aplikacije in seje, namesto datotečnega sistema.
- OPcache z dovolj pomnilnika in najnovejša podprta različica PHP.
- Indeksatorji v »načrtovanem« načinu (Update by Schedule), da shranjevanje izdelkov ne upočasnjuje zahtev kupcev.
- Pravi cron: opravila Magenta v ozadju (indeksiranje, e-pošta, praznjenje predpomnilnika) naj tečejo vsako minuto iz sistemskega crona.
- Nastavitev podatkovne baze: velikost medpomnilnika MariaDB ali MySQL prilagodi pomnilniku strežnika.
- Slike in CDN: slike WebP, ustrezne velikosti in CDN za statične datoteke.
- Lažja tema: stara tema Luma naloži veliko JavaScripta; sodoben, lažji sprednji del močno izboljša kazalnike Core Web Vitals.
Varnost
- Posodobitve: Adobe za Magento redno izdaja varnostne popravke; namesti jih čim prej, saj so trgovine Magento priljubljena tarča napadov za krajo podatkov plačilnih kartic (Magecart).
- Skrbniški vmesnik: unikaten skrbniški URL, dvostopenjsko overjanje (Magento ga zahteva že vgrajeno) in po možnosti omejitev po naslovu IP.
- Plačilo pri zunanjem ponudniku: če kupec podatke kartice vnese v vmesniku plačilnega ponudnika, tvoj strežnik ne obdeluje podatkov kartic, kar močno poenostavi skladnost s PCI DSS.
- Dovoljenja datotečnega sistema: dovoljenja po dokumentaciji Magenta, spletni strežnik pa naj kode ne more pisati.
- Zaščita na ravni strežnika: požarni zid, Fail2ban, iskanje zlonamerne kode, filtriranje DDoS (na KVM VPS aWh je to že vključeno). Podrobnosti smo opisali v našem vodniku za varnost VPS.
Varnostne kopije
Podatkovna baza spletne trgovine se nenehno spreminja, zato poleg dnevne varnostne kopije strežnika podatkovno bazo kopiraj pogosteje (na primer vsako uro) in jo hrani neodvisno od strežnika. Pred posodobitvijo Magenta vedno naredi posnetek stanja VPS, da se ob napaki v nekaj minutah vrneš nazaj; na KVM VPS aWh sta dnevna varnostna kopija in ustvarjanje posnetkov stanja vključena v ceno. Naš vodnik o varnostnem kopiranju VPS podrobno opisuje možnosti.
Selitev
Pri selitvi obstoječe trgovine Magento je treba prenesti datoteke, podatkovno bazo in predstavnostne datoteke, nato pa na novem strežniku nastaviti povezane storitve (OpenSearch, Redis, Varnish, cron), znova indeksirati in zgraditi predpomnilnik. Delovanje preveri na testni domeni, DNS pa preklopi šele nato, ob času z malo prometa. Če se zatakne, nam piši.
Povzetek
Magento 2 je zmogljiv, a zahteven mehanizem spletnih trgovin: potrebuje OpenSearch, Redis, veliko pomnilnika in SSH, zato na deljenem gostovanju ne teče zanesljivo. Za majhno živo trgovino potrebuješ vsaj 4 vCPU in 8 GB pomnilnika s shrambo NVMe, za večje več. Ključ hitrega delovanja so produkcijski način, Varnish, Redis in dobro nastavljeno indeksiranje, ključ varnosti pa redne posodobitve in zaščiten skrbniški vmesnik. Če upravljanja strežnika ne prevzameš sam, izberi upravljan VPS.
Pogosta vprašanja
Ali za Magento 2 zadošča deljeno gostovanje?
Ne. Od Magenta 2.4 potrebuje iskalno storitev OpenSearch, za namestitev in posodobitev pa SSH, Composer in veliko pomnilnika, zato priporočamo VPS ali namenski strežnik.
Koliko pomnilnika potrebuje trgovina Magento?
Za majhno živo trgovino vsaj 8 GB, za srednjo 16–24 GB, saj iz tega živijo OpenSearch, podatkovna baza, Redis in PHP. PHP memory_limit naj bo vsaj 2 GB.
Zakaj je KVM VPS boljši za Magento?
Ker daje zajamčen procesor in pomnilnik z lastnim jedrom, zato je mogoče OpenSearch, Redis, Varnish in vse druge potrebne storitve namestiti brez težav, promet drugih strank pa trgovine ne upočasnjuje.
Kaj Magentu prinese NVMe SSD?
Magento izvaja ogromno drobnih operacij s podatkovno bazo in datotekami; NVMe SSD je pri njih večkrat hitrejši od SSD SATA, kar se neposredno pozna v košarici, blagajni in skrbniškem vmesniku.
Kaj je Varnish in zakaj je pomemben?
Predpomnilniški posrednik, ki celotne strani streže iz pomnilnika, zato se strani izdelkov in kategorij naložijo zelo hitro, mimo PHP in podatkovne baze. Magento ga uradno podpira, v živi trgovini je priporočljiv.
Katero različico PHP naj uporabljam?
Tisto, ki jo podpirata uporabljena različica Magenta in tvoje razširitve; različica 2.4.8 podpira PHP 8.3 in 8.4. Starejša različica Magenta lahko potrebuje starejši PHP, takrat je vredno načrtovati tudi posodobitev Magenta.
Kako razširim VPS, če se promet poveča?
Na portalu za stranke lahko preklopiš na večji paket; razširijo se procesor, pomnilnik in prostor za shranjevanje. Pri veliki trgovini lahko podatkovno bazo in iskalnik postaviš tudi na ločen strežnik.
Ali pomagate pri selitvi trgovine Magento?
Da, nam piši s podrobnostmi. Če bi nam zaupal tudi nastavitev in upravljanje strežnika, je za to namenjena naša storitev upravljanega VPS.