Hvordan Super-Scale Magento i Cloud

Denne opplæringen vil hjelpe deg med å forberede en Magento-installasjon for høy trafikk, bedre belastningstider og enklere, pågående nettstedbehandling. Klar?


Krav

Du kan laste ned den ferdige koden for denne opplæringen, eller starte "magento-basic" Quickstart fra din Pagoda Box-konto for å teste et arbeidssted.

  • En Pagoda Box-konto (gratis)
  • En funksjonell lokal Magento Install
  • Lokal utviklingsprogramvare (MAMP eller WAMP)
  • Git installert (kan bruke SFTP)
  • Pagoda Terminal Client Installert

Riktig advarsel: Denne opplæringen kan forandre livet ditt. Pagoda-boksen er ikke tradisjonell hosting. Læringene i denne artikkelen vil ikke bare hjelpe skalaen Magento, men den legger også grunnlaget for en progressiv utvikling-til-produksjons arbeidsflyt.


Trinn 1: Konfigurer Git lokalt (SFTP vil fungere som en alternativ)

Merk: Hvis du allerede bruker Git, kan du hoppe over denne delen. Hvis ikke, gir veiledningen Oppsett Git spesifikke instruksjoner for å opprette en SSH-nøkkel, samt lenker for nedlasting og installering av Git (også nedenfor).

Mens det er mulig å bruke bare SFTP på Pagoda Box, integrerer den offisielt anbefalte (og mest effektive) arbeidsflyten Git inn i din daglige utvikling. Git muliggjør funksjoner som samarbeid, enhetlig kodefordeling, distribuerer, distribuerer historie og ruller tilbake kode. Mens de fleste av disse funksjonene er tilgjengelige for FTP-brukere, bruker Git integrasjon sømløst.

Hvis du vil utnytte Pagoda Box fullt ut, last ned Git, og lær grunnleggende. Avhengig av operativsystemet kan oppsettet variere litt. Uavhengig av OS, er kommandoene identiske når Git er installert.

Bruke Git til å administrere samarbeid og versjonskontroll kan innebære en kort læringskurve. Det er imidlertid generelt bare tre kommandoer som vi kontinuerlig vil bruke til å forandre endringer lokalt, og deretter distribuere til Pagoda-boksen:

  • git add . - Legger til lokale filer i lageret ditt
  • git commit -m "noen melding om hva du har gjort" - Forplikter dine endringer
  • git push pagoda - all - Skifter endringer til Pagoda Box Repository (automatisk utplassert som standard)

Vi bruker disse senere.


Trinn 2: Installer Pagoda Box Terminal Client

 * / \ / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | ____ _ ____ ___ ____ _ ____ _____ __ | _ \ / \ / ___ | / _ \ | _ \ / \ | __) / _ \ \ / / | | _) / _ \ | | _ | | | | | | | / _ \ | _ \ | | | \ / | __ / ___ \ | _ | | | _ | | | _ | / ___ \ | | _) | | _ | / \ | _ | / _ / \ _ \ ____ | \ ___ / | ____ / _ / \ _ \ ____ / \ ___ / _ / \ _ \ Velkommen til din Pagoda Box Terminal Client. ----------------------------------------------- --- -------------------------------------- ------------ --------------------- Nyt.

Pagoda-boksen gir en terminalklient som lar deg klone, lage, distribuere, ødelegge, omdøpe og tilbakestille et program fra kommandolinjen. Senere i denne opplæringen bruker vi klienten til å skape en sikker tunnel til den levende Magento-databasen med Sequel Pro (prosessen er lik for andre databasebehandlingsverktøy som HeidiSQL).

Pagoda Box Terminal Client er en rubygem, så installasjonen er ganske enkel. Først må Ruby installeres. Installasjonen er forskjellig for hvert operativsystem.

  • Mac - Ruby and RubyGems kommer forhåndsinstallert på Mac OSX. Så lenge du kjører v10.5 eller senere, bør du være god å gå.
  • Windows - Det er et par forskjellige måter å installere Ruby på i Windows. Vi anbefaler dette automatisk installasjonsprogrammet. Hvis det ikke fungerer for oppsettet ditt, vil et Google-søk gi deg en ganske god liste over installasjons-gjennomganger.
  • Linux - Bruk din foretrukne pakkebehandling til å laste ned Ruby-pakken. For Ubuntu-brukere er perlen tilgjengelig via getdeb.net.

Installer og verifiser Terminal Client

Når Ruby er installert, kjør du bare følgende kommando for å installere Pagoda RubyGem:

På Mac eller Linux:

 $ sudo perle installasjon pagoda

På Windows:

 $ perle installasjon pagoda

For å bekrefte at Pagoda-perlen er riktig installert, kjør du deretter:

 $ pagodeliste

Hvis dette er første gangen du har brukt perlen, vil den be om ditt Pagoda Box-brukernavn og passord. Når du har angitt disse, kan du forvente å se en liste over dine Pagoda Box-applikasjoner. Hvis du ikke har opprettet noen applikasjoner, blir listen tom.

Hvis du får en feil, er det sannsynligvis ugyldig legitimasjon. Du kan bekrefte eller endre hvilke legitimasjonsdata perlen bruker ved å redigere filen som finnes på din lokale datamaskin på ~ / .Pagodarc. Pass på at du nøyaktig samsvarer med legitimasjonene du bruker i Pagoda Box-kontoen din. (Merk: dette er en skjult fil, så du må aktivere skjulte filer eller åpne via terminalen. Merk også at filen lagrer legitimasjonene dine to ganger, så rediger begge om nødvendig.)


Trinn 3: Installer Magento lokalt

Merk: Hopp over dette trinnet hvis du allerede har en lokal Magento-installasjon.

Hvis du ikke allerede har det, må du sørge for at du bruker lokal webserver og databasehåndteringsprogramvare. Det er flere alternativer tilgjengelig, avhengig av operativsystemet. Et vanlig alternativ for Mac er MAMP, eller WAMP for Windows. Begge er gratis og enkelt satt opp.

Når ditt lokale utviklingsmiljø er satt opp, fortsett og last ned Magento, og følg den offisielle veiledningen for å installere Magento lokalt.

Du er velkommen til å bruke Magento's automatisk installasjonsskript for å sette opp applikasjonen i ditt lokale miljø. På grunn av Pagoda Boxs distribuerte sky arkitektur, vil ikke skriptet installere Magento direkte i produksjonsmiljøet. Pagodaboksens arbeidsflyt og arkitektur krever at du foretar kodendringer lokalt, forplikter, og distribuerer deretter til produksjon. Denne arbeidsflyten har plass til samarbeid og utvikling> oppføring> produksjon av beste praksis.


Trinn 4: Konfigurer PHP ved hjelp av en boksfil

Merk: På Pagoda-boksen kan en YAML-boksfil inkluderes i roten til kodenavnet ditt. Mens Boxfile er valgfritt, gir det avanserte funksjoner, som å manipulere ditt vertsmiljø på hver distribusjon. Vi bruker Boxfile i denne veiledningen for å forenkle oppgaver, og for å gjøre ansettelsen gjenbrukbar på Pagoda Box.

Opprett en fil med navnet "Boxfile" i roten til din lokale Magento-installasjon, og kopier deretter følgende til Boxfile (forklaring nedenfor):

 web1: navn: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - krøll - såpe

Opprett / navngi webklyngen

Denne Boxfile serverer flere formål. Først skaper det en web1 komponent, så navngir den mag-app.

Delte skrivbare kataloger

For det andre identifiserer Boxfile media og Var som delte skrivbare kataloger. Dette tillater brukere å laste opp bilder, video og andre medier til et distribuert Magento Cloud-nettsted uten at de skriver seg ut av synkronisering.

Når en katalog er merket som skrivbar, blir innholdet ikke lenger distribuert til Pagoda-boksen fra ditt lokale lager. Når som helst lokale filer må distribueres til disse katalogene, må de kopieres manuelt via SSH eller SFTP. Du kan også bruke SSH / SFTP til å overføre filer fra Pagoda Box til din lokale maskin etter behov.

PHP versjon og utvidelser

The Boxfile erklærer også hvilken PHP-versjon og utvidelser som vil bli inkludert i dine web-forekomster når de distribueres. På denne måten blir både miljøet og applikasjonen versjonert sammen, så rulling tilbake til en tidligere distribusjon inkluderer den riktige PHP-versjonen og utvidelsene. Listen over PHP-utvidelser i denne Boxfile ble hentet fra Magentos offisielle systemkrav.

Tips: Når Git er installert i ditt lokale miljø, bruk .gitignore fil for å ignorere de skrivbare katalogene som er angitt i Boxfile. Identifisere disse katalogene inne i .gitignore filen bidrar til å redusere størrelsen på repo og distribusjonstid. I tillegg til de skrivbare katalogene, kan du også legge til overførte katalog til .gitignore fil, siden den brukes lokalt, og ikke på Pagoda-boksen.

Når du har installert Git og Terminal Client, konfigurert Boxfile og ferdiggjort din lokale kildekode, er du klar til å starte på Pagoda Box.


Trinn 5: Opprett en gratis pagodabokskonto

Hvis du ikke allerede har en, opprett en gratis Pagoda Box-konto. Du trenger ikke å skrive inn et kredittkort for å installere Magento for testing.

Hvis du ikke allerede har gjort det, følger du denne veiledningen for å legge til en SSH-nøkkel i pagodaboksadministratorpanelet. Guiden gir spesifikke instruksjoner for å sette opp en SSH-nøkkel på enten Mac eller Windows.


Trinn 6: Last opp Magento til Pagoda-boksen

Når du har opprettet en Pagoda Box-konto og satt opp en SSH-nøkkel, gå til Hjemmesiden i din nye konto og klikk på "Ny applikasjon" -knappen for å opprette et nytt program.

Merk: Denne opplæringen heter vår prøveapplikasjon "magento". Appnavnet brukes også til Pagoda Box-depotet, underdomenet for det nyutviklede programmet (magento.pagodabox.com) og brukernavnet i SFTP-modus. Erstatt "magento" med "ditt-app-navn-her" der det er hensiktsmessig gjennom resten av denne opplæringen.

Last opp til et tomt repo (anbefalt for denne opplæringen)

Deretter velger du blant de 3 alternativene for å starte Magento-nettstedet ditt. Siden du allerede har en tilpasset versjon av Magento lokalt, velger du "Tøm repo" for å distribuere ved hjelp av SFTP eller Git, navnet ditt program, og klikk "Start applikasjon".

Du blir bedt om å velge din foretrukne distribusjonsmetode (Git eller SFTP). Klikk på innstillingene dine, og følg instruksjonene på skjermen.

Git Alternativ

Du kan kopiere og lime inn instruksjonene på skjermen fra Pagoda Box-dashbordet til terminalen din etter at du har brukt Terminal for å endre katalogen (cd) til roten til prosjektet.

De innpakkede kommandoene gjør følgende:

  • git init - Initialiser Magento-prosjektet som et Git Repository
  • git add . - Legg til alle filer fra prosjektet til repo
  • git commit -m 'din forpliktelse melding' - Forbind filer med en melding som lar deg raskt skanne distribuere historikk i fremtiden, hvis du må endre eller endre endringer
  • git fjernkontroll legg til pagoda [email protected]: magento.git - Legg til Pagoda-boksen som en fjernkontroll (den spesifikke git-webadressen for søknaden din vises på begge disse skjermbildene, og i din app-oversikt
  • git push pagoda - all - Skyv din lokale kode til Pagoda Box-fjernarkivet. Så lenge du er på "master" -grenen (som er standard), vil Pagoda Box automatisk distribuere koden din og utføre instruksjonene vi angir i Boxfile. Automatisk distribusjon kan slås av i administrasjonspanelet, eller konfigureres til å distribuere automatisk fra en Git-grenen annet enn Master.

SFTP-alternativ

Hvis du valgte SFTP, vil Pagoda Box veilede deg gjennom å etablere legitimasjon og et passord. Koble via SFTP til Pagoda Box, og last opp din Magento kildekode i kode katalog.


Trinn 7: Opprett en database

Det finnes to måter å opprette en database på Pagoda-boksen. Hver har fordeler, forklart nedenfor:

Opprett en DB i Boxfile

Boxfile vil automatisk lage en database komponent på distribusjon, så lenge den komponenten (db1, db2, etc.) eksisterer ikke allerede. Å deklarere databasen i Boxfile sparer litt tid nå, og gjør det mulig å distribuere flere Magento-sider fra en standardisert kodebase i fremtiden. (Merk: Bare cloud DBs kan distribueres fra Boxfile. Hvis du trenger en større, dedikert eller overflødig database, se Dashboard-alternativet senere i dette trinnet.) Legg til følgende i Boxfile:

 db1: navn: mag-db type: mysql

Din oppdaterte Boxfile skal se slik ut:

 web1: navn: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - krøll - såpe db1: navn: mag-db type: mysql

Forbind deretter endringer i den oppdaterte filen og trykk på endringer i Pagoda-boksen:

 $ git commit -m "pagoda config" $ git push pagoda --all

Alternativ: Opprett en DB i Dashboard

Du kan også opprette en database fra Pagoda Box Dashboard. Her legger du til en større, dedikert eller overflødig database.

Først klikker du på "Legg til database" i oversikten.

Pagoda-boksen vil gå gjennom en rekke skjermer for å konfigurere databasen din, avhengig av dine valg. Hvis du har valgt Dedicated-alternativet, blir du bedt om å formatere databasen din som følger:

Cloud databaser distribuerer vanligvis innen minutter. Hvis du velger Dedikert, ikke bli utålmodig. Du kan vente i opptil 90 minutter for at en stor server skal bli gitt til dine spesifikasjoner.


Trinn 8: Konfigurer DB-legitimasjon for produksjon

Databasen genererer automatisk legitimasjon når den er opprettet på Pagoda-boksen. Vi bruker disse legitimasjonene for å konfigurere Magento i produksjon.

Men siden Magento vil bli brukt i både lokale miljøer og i produksjon, må vi levere ulike databasegodkjenninger for hver. Vi bruker Deploy Hooks i Boxfile for å forenkle denne prosessen ved å utføre skript eller kommandoer under distribusjon.

I tilfelle av Magento bytter vi local.xml fil ved distribusjon. På den måten, uten å skifte legitimasjon manuelt, blir app / etc / local.xml filen vil automatisk ha lokal database legitimasjon i utvikling, men produksjon database legitimasjon på Pagoda Box.

Opprett en local.xml for Produksjon

Først oppretter du en katalog som heter pagoda i rot, og kopier deretter Magento app / etc / local.xml til den nye katalogen.

Deretter redigerer du local.xml å inkludere Pagoda Box database legitimasjon fra kontoen dashbordet. Merk at Pagoda-boksen bruker 3 nivåer av godkjenning, slik at selv om legitimasjonene dine er kompromittert, kan andre brukere ikke få tilgang til databasen din.

Bytt local.xml Configs on Deploy

Legg til følgende i Boxfile, under web1 delen for å lage distribusjonshaken.

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

Din oppdaterte Boxfile skal se slik ut:

 web1: navn: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - krøll - såpe after_build: - "mv pagoda / local.xml app / etc / local.xml "db1: navn: mag-db type: mysql

Forbind deretter endringer og trykk på Pagoda-boksen:

 $ git add. $ git commit -m "pagoda config" $ git push pagoda --all

Trinn 9: Overfør databasen

Med de samme verktøyene du bruker til å administrere en lokal database, kan du sikkert administrere en levende database på Pagoda-boksen. Vi bruker Sequel Pro for dette eksempelet, men prosessen ligner på verktøy som HeidiSQL.

Eksporter din lokale DB

Når Magento installasjonsskript kjørte lokalt, opprettet det flere tabeller i den lokale databasen. Disse tabellene må migreres til produksjon.

Først eksporter din lokale database ved hjelp av databasesystemet ditt: Fil> Eksporter.

Velg nå et sted, og lagre eksporten.

Opprett en sikker DB-tilkobling

Nå etablere en database tunnel. Bruk Pagoda Box Terminal Client, angi appen din hvis database du prøver å få tilgang til, og IDen til databasen komponenten (for eksempel db1), som i dette eksemplet:

 $ pagoda-en magento tunnel -c db1 - OR-- $ pagoda --app = magento tunnel - komponent = db1

Når tunnelen er opprettet, bruk Sequel Pro (eller lignende) for å koble til databasen ved hjelp av verten og porten som leveres av Pagoda Terminal Client ...

Og brukernavnet og passordet i Pagoda-databasen din. Disse ble automatisk opprettet med databasen, og kan bli funnet i Pagoda Box Dashboard under databasekomponenten (se eksempel i trinn 8).

Importer og oppdater produksjon DB

Deretter importerer du databasen til produksjon ved hjelp av Sequel Pro (eller lignende): File> Import. Velg nå databaseeksportfilen, og åpne.

Til slutt, siden vi kjørte installasjonsskriptet lokalt, er det nødvendig å justere basisadressen direkte i databasen før du surfer på nettstedet. Mens du fortsatt er koblet til Pagoda Box-databasen i Sequel Pro, naviger / filtrer til core_config_data bord og rediger verdien for følgende baner:

 web / usikker / base_url web / secure / base_url

Verdiene for hver skal se slik ut:


Trinn 10: Konfigurer e-post

For å beskytte IP-ene dine fra å bli flagget som spam, bruker Pagoda Box SMTP-e-postprotokollen til å sende e-post via tredjeparts e-postleverandørens SMTP-legitimasjon. På engelsk betyr det at du trenger et firma (som Gmail) som tilbyr posttjenester.

Uansett hvilken e-postleverandør du velger, skriver du inn kontoopplysninger fra den aktuelle leverandøren i ditt Pagoda Box-dashbord. Det skal se slik ut:


Trinn 11: Cron Jobs (Valgfritt)

Noen få gjentatte oppgaver i Magento (for eksempel å sende nyhetsbrev, loggrengjøring, kundevarsler, etc.) må skje periodisk. De cron.php Filen som ligger i Magento-roten vil utløse disse oppgavene. Vi setter opp en Cron-jobb i Pagodaboks-administrasjonspanelet for å kjøre cron.php hvert 15. minutt. (Merk: For å konfigurere Magento-spesifikke oppgaver, se deres offisielle veiledning.)

Cron Jobs i Boxfile

Cron Jobs kan legges til eller oppdateres via Boxfile, og deretter distribueres til Pagoda Box. For å planlegge en oppgave med 15 minutters intervaller, legg til følgende i Boxfile under web1: komponent (endre "magento" for å peke til ditt eget appnavn / underdomene):

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

Din oppdaterte Boxfile skal se slik ut:

 web1: navn: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - krøll - såpe after_build: - "mv pagoda / local.xml app / etc / local.xml "cron: -" * / 15 * * * * ":" curl -s -o / dev / null http://magento.pagodabox.com/cron.php "db1: navn: mag -db type: mysql

Alternativ: Cron Jobs i Dashboard

I administrasjonspanelet i Pagoda-boksen under Cron-fanen legger du til følgende (endre "magento" for å peke på ditt eget appnavn):

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

Rute: * / 15 * * * *

Det skal se slik ut:


Del 2 - Optimalisering: Redis, Scaling & Benchmarking

Du har allerede fått det tunge løftet ut av veien. Din Magento-applikasjon er skalerbar, og endringer kan enkelt distribueres i alle tilfeller med $ git push pagoda - all.

I oppfølgingsartikkelen optimaliserer vi Magento, legger til en Redis-hurtigbuffer, SSL og Domain-aliaser, og deretter skaler applikasjonen for benchmarking og produksjon. Ser deg snart!