Denne opplæringen vil hjelpe deg med å forberede en Magento-installasjon for høy trafikk, bedre belastningstider og enklere, pågående nettstedbehandling. Klar?
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.
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.
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 dittgit commit -m "noen melding om hva du har gjort"
- Forplikter dine endringergit push pagoda - all
- Skifter endringer til Pagoda Box Repository (automatisk utplassert som standard)Vi bruker disse senere.
* / \ / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | ____ _ ____ ___ ____ _ ____ _____ __ | _ \ / \ / ___ | / _ \ | _ \ / \ | __) / _ \ \ / / | | _) / _ \ | | _ | | | | | | | / _ \ | _ \ | | | \ / | __ / ___ \ | _ | | | _ | | | _ | / ___ \ | | _) | | _ | / \ | _ | / _ / \ _ \ ____ | \ ___ / | ____ / _ / \ _ \ ____ / \ ___ / _ / \ _ \ 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.
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.)
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.
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
Denne Boxfile serverer flere formål. Først skaper det en web1
komponent, så navngir den mag-app
.
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.
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 tiloverfø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.
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.
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.
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.
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 Repositorygit add .
- Legg til alle filer fra prosjektet til repogit 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 endringergit 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-oversiktgit 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.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.
Det finnes to måter å opprette en database på Pagoda-boksen. Hver har fordeler, forklart nedenfor:
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
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.
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.
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.
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
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.
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.
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).
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:
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:
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 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
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:
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!