Cum de a super-Scale Magento în Cloud

Acest tutorial vă va ajuta să pregătiți o instalare Magento pentru un trafic mare, timpi de încărcare mai buni și o gestionare mai simplă a site-ului. Gata?


cerinţe

Puteți descărca codul terminat pentru acest tutorial sau lansați Quickstart "magento-basic" din contul dvs. Pagoda Box pentru a testa un site de lucru.

  • Un cont de Pagoda Box (gratuit)
  • O instalare locală Magento funcțională
  • Software de dezvoltare locală (MAMP sau WAMP)
  • Git instalat (Poate utiliza SFTP)
  • Clientul Terminal Pagoda instalat

Avertisment corect: acest tutorial vă poate schimba viața. Pagoda Box nu este hosting tradițional. Învățăturile din acest articol nu numai că vor ajuta la scalarea Magento, ci și ele stau la baza unui flux de lucru progresiv de dezvoltare-producție.


Pasul 1: Configurați Git Local (SFTP va funcționa ca alternativă)

Notă: dacă utilizați deja Git, puteți trece peste această secțiune. Dacă nu, ghidul Setting Up Git oferă instrucțiuni specifice pentru crearea unei chei SSH, precum și linkuri pentru descărcarea și instalarea Git (de asemenea, de mai jos).

În timp ce este posibil să utilizați doar SFTP pe Pagoda Box, fluxul de lucru recomandat (și cel mai eficient) oficial integrează Git în dezvoltarea dvs. zilnică. Git permite caracteristici cum ar fi colaborarea, distribuirea uniformă a codurilor, implementarea, implementarea istoricului și rularea codului. În timp ce majoritatea acestor caracteristici sunt disponibile pentru utilizatorii FTP, utilizarea Git face integrarea fără probleme.

Dacă doriți să profitați pe deplin de Pagoda Box, descărcați Git și aflați elementele de bază. În funcție de sistemul dvs. de operare, setarea poate varia ușor. Indiferent de sistemul dvs. de operare, comenzile sunt identice odată ce Git este instalat.

Utilizarea Git pentru a gestiona colaborarea și controlul versiunii poate implica o scurtă curbă de învățare. Cu toate acestea, există în general doar trei comenzi pe care le vom folosi în mod continuu pentru a comite schimbări la nivel local, apoi pentru a le utiliza în Pagoda Box:

  • adăugați git . - Adaugă fișiere locale în depozit
  • git comite -m "un mesaj despre ceea ce ai făcut" - Implică schimbările tale
  • git push pagoda - toate - Modifică schimbările în Repository de Pagodă (auto-implementate implicit)

Vom folosi mai târziu.


Pasul 2: Instalați Terminal Client Pagoda Box

 * / \ / \ + _ / / / | \\ \\ + || * ||| * || | + || * || + | / \ + _ / / / | \\ \\ + || * ||| * || | + || * || + | ____ _ ____ ___ ____ _ ____ _____ __ | _ \ / \ / ___ | / _ \ | _ \ / \ | __) / _ \ / / / | _) / _ \ | | _ | | | | | | | / _ \ | _ \ | | | \ / | __ / ___ \ | _ | | | _ | | | _ | / ___ \ | | _) | | _ | / \ | _ | / _ / \ _ \ ____ | \ ___ / | ____ / _ / \ _ \ ____ / \ ___ / _ / \ _ \ Bine ați venit la Terminal Client Pagoda. ----------------------------------------------- --- -------------------------------------------------- --------------------- Bucură-te.

Pagoda Box oferă un client Terminal care vă permite să clonați, să creați, să implementați, să distrugeți, să redenumiți și să refuzați o aplicație din linia de comandă. Mai târziu, în acest tutorial, vom folosi clientul pentru a crea un tunel securizat la baza de date live Magento cu Sequel Pro (procesul este similar pentru alte instrumente de gestionare a bazelor de date, cum ar fi HeidiSQL).

Terminal Client Pagoda Box este un rubygem, deci instalarea este destul de simplă. În primul rând, Ruby trebuie instalat. Instalarea este diferită pentru fiecare sistem de operare.

  • Mac - Ruby și RubyGems sunt preinstalate pe Mac OSX. Atâta timp cât executați v10.5 sau mai târziu, ar trebui să fiți bine să mergeți.
  • Windows - Există câteva moduri diferite de a instala Ruby în Windows. Vă recomandăm instalarea automată. Dacă nu funcționează pentru setarea dvs., o căutare Google vă va oferi o listă destul de bună de instalare.
  • Linux - Utilizați managerul de pachete preferat pentru a descărca pachetul Ruby. Pentru utilizatorii Ubuntu, bijuteria este disponibilă prin intermediul getdeb.net.

Instalați și verificați clientul terminal

Odată ce Ruby este instalat, pur și simplu rulați următoarea comandă pentru a instala Pagoda RubyGem:

Pe Mac sau Linux:

 $ sudo gem instalează pagoda

Pe Windows:

 $ gem instalează pagoda

Apoi, pentru a verifica dacă aveți Pagoda Gem instalat corect, executați:

 lista pagodelor $

Dacă aceasta este prima dată când ați folosit Gemul, acesta va cere numele și parola Pagoda Box. După ce le-ați introdus, așteptați să vedeți o listă a aplicațiilor dvs. Pagoda Box. Dacă nu ați creat nicio aplicație, lista va fi goală.

Dacă primiți o eroare, cel mai probabil este vorba de acreditări nevalide. Puteți să verificați sau să schimbați ce acreditări utilizează bijuteria, editând fișierul de pe computerul dvs. local la ~ / .Pagodarc. Asigurați-vă că potriviți exact acreditările pe care le utilizați în contul dvs. Pagoda Box. (Notă: acesta este un fișier ascuns, deci va trebui să activați fișierele ascunse sau să le deschideți prin terminal. De asemenea, rețineți că fișierul dvs. stochează de două ori acreditările dvs., deci modificați dacă este necesar.)


Pasul 3: Instalați Magento local

Notă: săriți acest pas dacă aveți deja o instalare locală Magento de lucru.

Dacă nu aveți deja, asigurați-vă că utilizați software-ul local de administrare a serverelor și a bazei de date. Există mai multe opțiuni disponibile, în funcție de sistemul dvs. de operare. O opțiune comună pentru Mac este MAMP sau WAMP pentru Windows. Ambele sunt libere și ușor de configurat.

Odată ce ați creat mediul de dezvoltare locală, continuați și descărcați Magento, apoi urmați ghidul oficial pentru a instala Magento pe plan local.

Simțiți-vă libertatea de a utiliza scriptul de instalare auto Magento pentru a configura aplicația în mediul dvs. local. Cu toate acestea, datorită arhitecturii cloud distribuite de Pagoda Box, scriptul nu va instala Magento direct în mediul de producție. Fluxul de lucru și arhitectura Pagoda Box vă solicită să efectuați modificări de cod la nivel local, să vă angajați, apoi să vă deplasați la producție. Acest flux de lucru găzduiește colaborarea și dezvoltarea> staționare> cele mai bune practici de producție.


Pasul 4: Configurați PHP utilizând un Boxfile

Notă: În Pagoda Box, un fișier YAML Boxfile poate fi inclus în rădăcina depozitului de coduri. În timp ce Boxfile este opțional, acesta oferă caracteristici avansate, cum ar fi manipularea mediului dvs. găzduit pe fiecare implementare. Vom folosi Boxfile extensiv în acest tutorial pentru a simplifica sarcinile și pentru a face restilizarea reutilizabilă pe Pagoda Box.

Creați un fișier numit "Boxfile" în rădăcina instalării locale Magento, apoi copiați următoarele în Boxfile (explicația de mai jos):

 web1: nume: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl -

Creați / denumiți clusterul Web

Acest Boxfile servește mai multor scopuri. În primul rând, creează o web1 componentă, apoi o numește mag-app.

Shared Directories

În al doilea rând, Boxfile identifică mass-media și var ca directoare comune scrise. Acest lucru permite utilizatorilor să încarce imagini, videoclipuri și alte materiale media într-un site Web distribuit din Magento, fără ca situațiile să nu se sincronizeze.

Atunci când un director este marcat ca scriitor, conținutul nu mai este trimis în Pagoda Box din depozitul local. Orice fișiere locale trebuie să fie instalate în aceste directoare, acestea trebuie să fie copiate manual prin SSH sau SFTP. De asemenea, puteți utiliza SSH / SFTP pentru a transfera fișiere din Pagoda Box la mașina dvs. locală, după cum este necesar.

Versiunea și extensiile PHP

Boxfile-ul declară, de asemenea, ce versiune și extensii PHP vor fi incluse în instanțele web pe măsură ce acestea se implementează. În acest fel, atât mediul, cât și aplicația sunt variante împreună, astfel că întoarcerea la o implementare anterioară include versiunea și extensiile PHP corecte. Lista extensiilor PHP din acest Boxfile a fost preluată din cerințele oficiale ale sistemului Magento.

Sfat: Odată ce Git este instalat în mediul local, utilizați .gitignore fișier pentru a ignora directoarele inscriptibile specificate în fișierul dvs. cutie. Identificarea acestor directoare în interiorul .gitignore fișierul ajută la reducerea dimensiunii repo-ului dvs. și a timpului de implementare a acestuia. În plus față de directoarele inscriptibile, puteți adăuga și downloader director la .gitignore Fișier, deoarece este utilizat local, și nu pe Pagoda Box.

Odată ce ați instalat Git și Clientul Terminal, ați configurat Boxfile și ați finalizat codul sursă local, sunteți gata să lansați pe Pagoda Box.


Pasul 5: Creați un cont gratuit pentru Pagoda Box

Dacă nu aveți deja unul, creați un cont gratuit pentru Pagoda Box. Nu va trebui să introduceți un card de credit pentru a instala Magento pentru testare.

Dacă nu ați făcut deja acest lucru, urmați acest ghid pentru a adăuga o cheie SSH în panoul Admin Pagină Administrator. Ghidul va furniza instrucțiuni specifice pentru configurarea unei chei SSH pe Mac sau Windows.


Pasul 6: Încărcați Magento în Pagoda

Odată ce ați creat un cont Pagoda Box și ați configurat o cheie SSH, accesați Pagina de pornire din noul dvs. cont și faceți clic pe butonul "Noua aplicație" pentru a crea o nouă aplicație.

Notă: Acest tutorial numește aplicația noastră probă "magento". Numele aplicației este de asemenea utilizat pentru depozitul Pagoda Box, subdomeniul pentru aplicația proaspăt implementată (magento.pagodabox.com) și numele de utilizator în modul SFTP. Înlocuiți "magento" cu "aplicația-numele-aici", acolo unde este cazul, pe tot parcursul acestui tutorial.

Încărcați într-un Empty Repo (recomandat pentru acest tutorial)

Apoi, alegeți dintre cele 3 opțiuni pentru a lansa site-ul Magento. Deoarece aveți deja o versiune personalizată a Magento pe plan local, selectați "Empty Repo" pentru a implementa folosind SFTP sau Git, denumiți aplicația și faceți clic pe "Lansarea aplicației".

Vi se va solicita să selectați metoda preferată de implementare (Git sau SFTP). Faceți clic pe preferințele dvs. și urmați instrucțiunile de pe ecran.

Opțiunea Git

Puteți copia și lipi instrucțiunile de pe ecran de pe tabloul de bord Pagoda Box la terminalul dvs. după ce ați folosit Terminal pentru a schimba directorul (cd) în rădăcina proiectului.

Comenzile lipite fac următoarele:

  • git init - Inițializați-vă proiectul Magento ca un depozit Git
  • adăugați git . - Adăugați toate fișierele din proiect în repo
  • git commit -m 'mesajul tău de comitet' - Comutați fișierele cu un mesaj care vă permite să scanați rapid istoria implementării în viitor, în cazul în care trebuie să reveniți sau să modificați modificările
  • git remote adaugă pagoda [email protected]: magento.git - Adăugați Pagoda Box ca distanță (adresa URL git specifică pentru aplicația dvs. apare atât pe acest ecran, cât și pe tabloul de bord al aplicației
  • git push pagoda - toate - Împingeți codul local la depozitul de la distanță de la Pagoda Box. Atâta timp cât sunteți în filiala "master" (care este implicită), Pagoda Box va implementa automat codul dvs. și va executa instrucțiunile pe care le-am setat în Boxfile. Instalarea automată poate fi dezactivată în tabloul de bord Administrator sau poate fi configurată să se desfășoare automat dintr-o altă ramură Git decât Master.

Opțiunea SFTP

Dacă ați optat pentru SFTP, Pagoda Box vă va ghida prin stabilirea acreditărilor și a unei parole. Conectați prin SFTP la Pagoda Box și încărcați codul sursă Magento în cod director.


Pasul 7: Creați o bază de date

Există două moduri de a crea o bază de date pe Pagoda Box. Fiecare are beneficii, explicate mai jos:

Creați un DB în Boxfile

Boxfile va crea în mod automat o componentă de bază de date pe care să o implementeze, atât timp cât acea componentă (db1, db2, etc.) nu există deja. Declarația bazei de date în Boxfile economisește un pic de timp și face ca implementarea mai multor site-uri Magento dintr-o bază de cod standardizată să fie mult mai simplă în viitor. (Notă: Numai DB-urile din cloud pot fi implementate din Boxfile.Dacă aveți nevoie de o bază de date mai mare, dedicată sau redundantă, consultați opțiunea Dashboard mai târziu în acest Pas.) Adăugați următoarele în Boxfile:

 db1: nume: mag-db tip: mysql

Boxul dvs. actualizat ar trebui să arate astfel:

 web1: nume: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - sapun db1: nume: mag-db tip: mysql

Apoi efectuați modificări la fișierul actualizat și împingeți modificările în Pagoda Box:

 $ git comită -m "Pagoda config" $ git push pagoda - tot

Alternate: creați un DB în tabloul de bord

De asemenea, puteți crea o bază de date din tabloul de bord Pagoda Box. Aici adăugați o bază de date mai mare, dedicată sau redundantă.

Mai întâi, faceți clic pe "Adăugați baza de date" din tabloul de bord.

Pagoda Box va trece printr-o serie de ecrane pentru a vă configura baza de date, în funcție de alegerile dvs. Dacă ați ales opțiunea Dedicată, vi se va solicita să măriți baza de date după cum urmează:

În general, bazele de date Cloud se desfășoară în câteva minute. Dacă ați ales Dedicat, nu primiți nerăbdare. Este posibil să așteptați până la 90 de minute pentru ca un server mare să fie rezervat conform specificațiilor dvs..


Pasul 8: Configurați acreditările DB pentru producție

Baza de date generează automat acreditări atunci când este creată pe Pagoda Box. Vom folosi aceste acreditări pentru a configura Magento în producție.

Cu toate acestea, deoarece Magento va fi utilizat atât în ​​medii locale, cât și în producție, trebuie să furnizăm date de acreditare diferite pentru fiecare. Vom folosi Deploy Hooks în Boxfile pentru a simplifica acest proces executând scripturi sau comenzi în timpul implementării.

În cazul Magento, vom schimba local.xml dosar la implementare. În acest fel, fără a schimba manual acreditările app / etc / local.xml fișierul va avea în mod automat acreditările bazei de date locale în curs de dezvoltare, dar acreditările bazei de date de producție pe Pagoda Box.

Creați un local.xml pentru producție

Mai întâi, creați un director numit pagodă în root, apoi copiați Magento's app / etc / local.xml la noul director.

Apoi, editați local.xml pentru a include acreditările bazei de date Pagoda Box din tabloul de bord al contului dvs. Rețineți că Pagoda Box utilizează 3 niveluri de autentificare, astfel încât, chiar dacă acreditările dvs. sunt compromise, alți utilizatori nu pot accesa baza de date.

Schimbați local.xml Configs on Deploy

Adăugați următoarele în fișierul dvs. cutie, sub web1 pentru a crea Cârligul de implementare.

 after_build: "mv pagoda / local.xml app / etc / local.xml"

Boxul dvs. actualizat ar trebui să arate astfel:

 web1: nume: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - sop after_build: "mv pagoda / local.xml app / etc / local.xml "db1: nume: tipul mag-db: mysql

Apoi schimbați schimbările și împingeți la Pagoda Box:

 $ git add. $ git comită -m "Pagoda config" $ git push pagoda - tot

Pasul 9: Migrați baza de date

Cu aceleași instrumente pe care le utilizați pentru a gestiona o bază de date locală, puteți gestiona în siguranță o bază de date live pe Pagoda Box. Vom folosi Sequel Pro pentru acest exemplu, dar procesul este similar pentru instrumente precum HeidiSQL.

Exportați DB local

Când scriptul de instalare Magento a rulat local, a creat mai multe tabele în baza de date locală. Tabelele respective trebuie să fie migrate spre producție.

Mai întâi, exportați baza de date locală utilizând managerul bazei de date: File> Export.

Acum alegeți o locație și Salvați exportul.

Stabilirea unei conexiuni securizate DB

Acum, stabiliți un tunel de bază de date. Utilizând Clientul Terminal Pagoda Box, specificați aplicația a cărei bază de date încercați să accesați și ID-ul componentei bazei de date (de ex. Db1), ca în acest exemplu:

 $ pagoda - un tunel magento -c db1 - OR-- $ pagoda --app = magento tunnel --component = db1

Odată ce tunelul este stabilit, utilizați Sequel Pro (sau similar) pentru a vă conecta la baza de date utilizând Host și Port furnizate de Clientul Pagoda Terminal ...

Și numele de utilizator și parola în acreditările bazei de date Pagoda. Acestea au fost create automat cu baza de date și pot fi găsite în tabloul de bord Pagoda Box sub componenta bazei de date (a se vedea exemplul din Pasul 8).

Import și actualizare DB de producție

Apoi, importați baza de date în producție folosind Sequel Pro (sau similar): File> Import. Acum selectați fișierul de export al bazei de date și Deschideți.

În sfârșit, deoarece am rulat scriptul de instalare local, este necesar să ajustăm urlul de bază direct în bază de date înainte de a naviga pe site. În timp ce sunteți încă conectat la baza de date Pagoda Box în Sequel Pro, navigați / filtrați la core_config_data tabel și editați valoarea pentru următoarele căi:

 web / unsecure / base_url web / secure / base_url

Valorile pentru fiecare ar trebui să arate astfel:


Pasul 10: Configurați poșta

Pentru a vă proteja IP-urile de a fi semnalate ca spam, Pagoda Box folosește protocolul de poștă SMTP pentru a trimite e-mailuri prin acreditările SMTP ale furnizorilor de poștă terță. În limba engleză, înseamnă că aveți nevoie de o companie (cum ar fi Gmail) care oferă servicii de poștă electronică.

Indiferent de furnizorul de e-mail pe care îl alegeți, introduceți acreditările contului de la acel furnizor în tabloul de bord Pagoda Box. Ar trebui să arate ceva de genul:


Pasul 11: Locuri de muncă Cron (opțional)

Câteva sarcini recurente în Magento (de ex. Trimiterea buletinelor de știri, curățarea jurnalelor, notificările clienților etc.) trebuie să se întâmple periodic. cron.php fișierul situat în rădăcina Magento va declanșa aceste sarcini. Vom configura un Cron Job în panoul Admin paginilor pentru a rula cron.php la fiecare 15 minute. (Notă: Pentru a configura sarcini specifice Magento, consultați Ghidul lor oficial.)

Lucrările Cron în Boxfile

Lucrările Cron pot fi adăugate sau actualizate prin Boxfile, apoi instalate în Pagoda Box. Pentru a programa o sarcină la intervale de 15 minute, adăugați următoarele la fișierul dvs. de box sub web1: (schimbați "magento" pentru a indica propriul nume / subdomeniu):

 cron: - "* / 15 * * * *": "curl -s -o / dev / null http://magento.pagodabox.com/cron.php"

Boxul dvs. actualizat ar trebui să arate astfel:

 web1: nume: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - app / etc / local.xml "cron: -" * / 15 * * * * ":" curl -s -o / dev / null http://magento.pagodabox.com/cron.php "db1: -db tip: mysql

Alternează: Cron de locuri de muncă în tabloul de bord

În panoul de administrare Pagoda din fila Cron, adăugați următoarele (schimbați "magento" pentru a indica numele propriului aplicație):

Comanda: curl-s-o / dev / null http://magento.pagodabox.com/cron.php

Programa: * / 15 * * * *

Ar trebui să arate astfel:


Partea 2 - Optimizare: Redis, Scaling & Benchmarking

Ați luat deja greutatea ridicată. Aplicația dvs. Magento este scalabilă, iar schimbările sunt ușor de implementat în toate situațiile $ git push pagoda - tot.

În articolul următor, vom optimiza Magento, vom adăuga un cache Redis, SSL și aliasuri de domenii, apoi vom scala aplicația pentru benchmarking și producție. Ne vedem în curând!

Cod