Deze tutorial helpt je bij het voorbereiden van een Magento-installatie voor veel verkeer, betere laadtijden en eenvoudiger doorgaand sitebeheer. Klaar?
Je kunt de voltooide code voor deze tutorial downloaden of de "magento-basic" Quickstart starten vanuit je Pagoda Box-account om een werkende site te testen.
Eerlijke waarschuwing: deze zelfstudie kan je leven veranderen. Pagoda Box is geen traditionele hosting. De leringen in dit artikel helpen Magento niet alleen te schalen, maar leggen ook de basis voor een progressieve workflow van ontwikkeling naar productie..
Opmerking: als u Git al gebruikt, kunt u dit gedeelte overslaan. Als dat niet het geval is, biedt de handleiding Setup Git specifieke instructies voor het maken van een SSH-sleutel, evenals koppelingen voor het downloaden en installeren van Git (ook hieronder).
Hoewel het mogelijk is om alleen SFTP op Pagoda Box te gebruiken, integreert de officieel aanbevolen (en meest efficiënte) workflow Git in je dagelijkse ontwikkeling. Git maakt functies mogelijk zoals samenwerking, uniforme codeverdeling, deployment, deployment history en rolling back-code. Hoewel de meeste van deze functies beschikbaar zijn voor FTP-gebruikers, maakt het gebruik van Git integratie naadloos.
Als u volledig wilt profiteren van Pagoda Box, download dan Git en Leer de basisprincipes. Afhankelijk van uw besturingssysteem, kan de installatie enigszins variëren. Ongeacht je besturingssysteem zijn de opdrachten identiek als Git is geïnstalleerd.
Het gebruik van Git om samenwerking en versiebeheer te beheren kan een korte leercurve inhouden. Er zijn echter over het algemeen maar drie opdrachten die we doorlopend gebruiken om wijzigingen lokaal vast te leggen en vervolgens in Pagoda Box te implementeren:
git add .
- Voegt lokale bestanden toe aan uw repositorygit commit -m "wat bericht over wat je hebt gedaan"
- Brengt uw wijzigingen tot standgit push pagoda - allemaal
- Verplaatst wijzigingen in de Repode van Pagoda Box (standaard automatisch geïmplementeerd)We zullen deze later gebruiken.
* / \ / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | ____ _ ____ ___ ____ _ ____ _____ __ | _ \ / \ / ___ | / _ \ | _ \ / \ | __) / _ \ \ / / | | _) / _ \ | | _ | | | | | | | / _ \ | _ \ | | | \ / | __ / ___ \ | _ | | | _ | | | _ | / ___ \ | | _) | | _ | / \ | _ | / _ / \ _ \ ____ | \ ___ / | ____ / _ / \ _ \ ____ / \ ___ / _ / \ _ \ Welkom bij uw Pagoda Box Terminal-client. ----------------------------------------------- --- -------------------------------------- ------------ --------------------- Genieten.
Pagoda Box biedt een Terminal Client waarmee u een applicatie kunt clonen, maken, implementeren, vernietigen, hernoemen en terugdraaien vanaf de opdrachtregel. Verderop in deze tutorial gebruiken we de client om een beveiligde tunnel te maken naar de live Magento-database met Sequel Pro (het proces is vergelijkbaar voor andere databasemanagementtools zoals HeidiSQL).
De Pagoda Box Terminal Client is een rubygem, dus de installatie is vrij eenvoudig. Allereerst moet Ruby worden geïnstalleerd. Installatie is anders voor elk besturingssysteem.
Nadat Ruby is geïnstalleerd, voert u eenvoudig de volgende opdracht uit om de Pagoda RubyGem te installeren:
Op Mac of Linux:
$ sudo gem installeer pagode
Op Windows:
$ gem installeer pagode
Voer vervolgens uit om te controleren of de Pagoda Gem correct is geïnstalleerd:
$ pagodalijst
Als dit de eerste keer is dat je de Gem hebt gebruikt, zal deze je gebruikersnaam en wachtwoord voor je Pagodebox vragen. Nadat u deze hebt ingevoerd, verwacht u een lijst met uw Pagoda Box-toepassingen te zien. Als u geen toepassingen hebt gemaakt, is de lijst leeg.
Als u een foutmelding krijgt, zijn dit hoogstwaarschijnlijk ongeldige inloggegevens. U kunt verifiëren of wijzigen welke inloggegevens de edelsteen gebruikt door het bestand op uw lokale computer te bewerken op ~ / .Pagodarc
. Zorg ervoor dat u exact overeenkomt met de inloggegevens die u gebruikt in uw Pagoda Box-account. (Opmerking: dit is een verborgen bestand, dus u moet verborgen bestanden inschakelen of openen via de terminal. Houd er ook rekening mee dat het bestand uw referenties twee keer opslaat, dus bewerk beide indien nodig.)
Opmerking: sla deze stap over als u al een werkende lokale Magento-installatie hebt.
Als u dit nog niet hebt, controleert u of u lokale webserver- en databasebeheersoftware gebruikt. Er zijn verschillende opties beschikbaar, afhankelijk van uw besturingssysteem. Een veelvoorkomende optie voor Mac is MAMP of WAMP voor Windows. Beide zijn gratis en gemakkelijk in te stellen.
Zodra uw lokale ontwikkelomgeving is ingesteld, kunt u Magento downloaden en vervolgens de officiële gids volgen om Magento lokaal te installeren.
U kunt het automatische installatiescript van Magento gebruiken om de toepassing in uw lokale omgeving in te stellen. Vanwege de gedistribueerde cloudarchitectuur van Pagoda Box zal het script Magento echter niet rechtstreeks in uw productieomgeving installeren. De werkstroom en architectuur van de Pagoda Box vereist dat u lokaal wijzigingen in de code aanbrengt, commiteert en vervolgens implementeert in productie. Deze workflow biedt ruimte voor samenwerking en ontwikkeling> staging> best practices voor productie.
Opmerking: op Pagoda Box kan een YAML-boxfile worden opgenomen in de root van uw coderepository. Hoewel de Boxfile optioneel is, biedt deze geavanceerde functies, zoals het manipuleren van uw gehoste omgeving op elke implementatie. We gebruiken de Boxfile uitgebreid in deze zelfstudie om taken te vereenvoudigen en de repository herbruikbaar te maken op Pagoda Box.
Maak een bestand met de naam "Boxfile" in de root van uw lokale Magento-installatie en kopieer vervolgens het volgende in uw Boxfile (onderstaande uitleg):
web1: naam: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap
Deze Boxfile heeft verschillende doelen. Eerst maakt het een web1
component, noemt het vervolgens mag-app
.
Ten tweede identificeert het Boxfile media
en var
als gedeelde beschrijfbare mappen. Hiermee kunnen gebruikers afbeeldingen, video's en andere media uploaden naar een gedistribueerde Magento-cloudsite zonder dat deze zichzelf niet synchroon schrijven.
Wanneer een map als beschrijfbaar is gemarkeerd, wordt de inhoud niet langer in Pagoda Box geïmplementeerd vanuit uw lokale repository. Telkens lokale bestanden in deze mappen moeten worden geïmplementeerd, moeten ze handmatig worden gekopieerd via SSH of SFTP. U kunt ook SSH / SFTP gebruiken om bestanden van Pagoda Box naar uw lokale computer over te zetten indien nodig.
De Boxfile verklaart ook welke PHP-versie en -extensies worden opgenomen in uw webinstances terwijl ze worden geïmplementeerd. Op deze manier zijn zowel de omgeving als de applicatieversies samen, dus het terugdraaien naar een eerdere implementatie omvat de juiste PHP-versie en -extensies. De lijst met PHP-extensies in dit Boxbestand is overgenomen uit de officiële systeemvereisten van Magento.
Tip: als Git is geïnstalleerd in uw lokale omgeving, gebruikt u de
.gitignore
bestand om de beschrijfbare mappen te negeren die zijn opgegeven in uw Boxfile. Identificatie van deze mappen binnen de.gitignore
bestand helpt de grootte van uw repo en uw inzettijd te verminderen. Naast de beschrijfbare mappen, kunt u ook dedownloader
map naar de.gitignore
bestand, omdat het lokaal wordt gebruikt, en niet op Pagoda Box.
Nadat je Git en de Terminal Client hebt geïnstalleerd, het Boxbestand hebt geconfigureerd en je lokale broncode hebt voltooid, ben je klaar om te starten op Pagoda Box.
Als je er nog geen hebt, maak dan een gratis Pagoda Box-account aan. U hoeft geen creditcard in te voeren om Magento te installeren voor testen.
Als u dit nog niet hebt gedaan, volgt u deze gids om een SSH-sleutel toe te voegen aan het paneel Beheerder van uw pagodevak. De handleiding bevat specifieke instructies voor het instellen van een SSH-sleutel op Mac of Windows.
Zodra je een Pagoda Box-account hebt gemaakt en een SSH-sleutel hebt ingesteld, ga je naar de startpagina in je nieuwe account en klik je op de knop "Nieuwe applicatie" om een nieuwe applicatie te maken.
Opmerking: deze zelfstudie geeft onze voorbeeldapplicatie "magento". De app-naam wordt ook gebruikt voor de Pagoda Box-repository, het subdomein voor de vers geïmplementeerde applicatie (magento.pagodabox.com) en de gebruikersnaam in de SFTP-modus. Vervang "magento" door "uw-app-naam-hier" indien van toepassing gedurende de rest van deze tutorial.
Kies vervolgens uit de 3 opties om uw Magento-site te lanceren. Omdat je al een aangepaste versie van Magento lokaal hebt, selecteer je 'Empty Repo' om te deployen met SFTP of Git, benoem je je applicatie en klik je op 'Application starten'..
U wordt gevraagd om uw voorkeursimplementatiemethode (Git of SFTP) te selecteren. Klik op uw voorkeur en volg de instructies op het scherm.
U kunt de instructies op het scherm van het Pagoda Box-dashboard naar uw terminal kopiëren en plakken nadat u Terminal hebt gebruikt om de directory (cd) te wijzigen in de hoofdmap van uw project.
De geplakte opdrachten doen het volgende:
git init
- Initialiseer je Magento-project als Git Repositorygit add .
- Voeg alle bestanden uit het project toe aan de repogit commit -m 'your commit message'
- Bestanden toewijzen met een bericht waarmee u snel de implementatiegeschiedenis in de toekomst kunt scannen, voor het geval u wijzigingen moet terugdraaien of wijzigengit remote add pagoda [email protected]: magento.git
- Voeg Pagoda Box toe als een afstandsbediening (de specifieke git-URL voor uw applicatie verschijnt op zowel dit scherm als in uw app-dashboardgit push pagoda - allemaal
- Duw uw lokale code naar de externe repository van Pagoda Box. Zolang u zich in de "master" -tak bevindt (wat de standaard is), zal Pagoda Box uw code automatisch implementeren en de instructies uitvoeren die we in de Boxfile hebben ingesteld. Auto-deploy kan worden uitgeschakeld in het Admin-dashboard of automatisch worden geïmplementeerd vanuit een andere Git-branch dan Master.Als u voor SFTP hebt gekozen, zal Pagoda Box u helpen bij het vaststellen van inloggegevens en een wachtwoord. Maak verbinding via SFTP naar Pagoda Box en upload uw Magento-broncode in de code
directory.
Er zijn twee manieren om een database te maken op Pagoda Box. Elk heeft voordelen, zoals hieronder uitgelegd:
De Boxfile maakt automatisch een databasecomponent voor de implementatie, zolang die component (db1
, db2
, enz.) bestaat nog niet. Het declareren van de database in de Boxfile bespaart nu een beetje tijd en maakt het in de toekomst veel eenvoudiger om meerdere Magento-sites te implementeren vanaf een gestandaardiseerde codebasis. (Opmerking: alleen cloud-DB's kunnen worden gedistribueerd vanuit de Boxfile.Als u een grotere, toegewijde of redundante database nodig hebt, raadpleegt u de optie Dashboard later in deze stap.) Voeg het volgende toe aan uw Boxfile:
db1: naam: mag-db type: mysql
Uw bijgewerkte Boxfile zou er als volgt uit moeten zien:
web1: naam: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap db1: naam: mag-db type: mysql
Breng vervolgens wijzigingen aan in het bijgewerkte bestand en push wijzigingen in Pagoda Box:
$ git commit -m "pagoda config" $ git push pagoda - alles
U kunt ook een database maken vanuit het Pagoda Box-dashboard. Hier voegt u een grotere, toegewijde of redundante database toe.
Klik eerst op "Database toevoegen" in het Dashboard.
Pagoda Box doorloopt een reeks schermen om uw database te configureren, afhankelijk van uw keuzes. Als u de Dedicated-optie hebt gekozen, wordt u gevraagd om uw database als volgt te vergroten:
Clouddatabases worden meestal binnen enkele minuten geïmplementeerd. Als je Dedicated hebt gekozen, wees dan niet ongeduldig. U kunt maximaal 90 minuten wachten voordat een grote server aan uw specificaties voldoet.
Uw database genereert automatisch referenties wanneer deze wordt gemaakt in Pagoda Box. We gebruiken die inloggegevens om Magento in productie te configureren.
Aangezien Magento zowel in lokale omgevingen als in productie zal worden gebruikt, moeten we echter voor elk daarvan verschillende databasereferenties leveren. We gebruiken Deploy Hooks in de Boxfile om dit proces te vereenvoudigen door tijdens de implementatie scripts of opdrachten uit te voeren.
In het geval van Magento, zullen we de local.xml
bestand bij inzet. Op die manier, zonder handmatig inloggegevens te wijzigen, de app / etc / local.xml
bestand zal automatisch lokale database-inloggegevens in ontwikkeling hebben, maar productiedatabase-inloggegevens op Pagoda Box.
Maak eerst een map met de naam pagode
in root, kopieer dan Magento's app / etc / local.xml
naar de nieuwe map.
Bewerk vervolgens local.xml
om Pagoda Box-databasereferenties op te nemen vanuit uw accountdashboard. Houd er rekening mee dat Pagoda Box 3 verificatieniveaus gebruikt, zodat zelfs als uw inloggegevens worden aangetast, andere gebruikers geen toegang hebben tot uw database.
Voeg het volgende toe aan uw Boxfile, onder de web1
sectie om de Deploy Hook te maken.
after_build: "mv pagoda / local.xml app / etc / local.xml"
Uw bijgewerkte Boxfile zou er als volgt uit moeten zien:
web1: naam: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap after_build: - "mv pagoda / local.xml app / etc / local.xml "db1: naam: mag-db type: mysql
Breng vervolgens wijzigingen aan en druk op Pagoda Box:
$ git add. $ git commit -m "pagoda config" $ git push pagoda - alles
Met dezelfde hulpmiddelen die u gebruikt om een lokale database te beheren, kunt u veilig een live database op Pagoda Box beheren. We gebruiken Sequel Pro voor dit voorbeeld, maar het proces is vergelijkbaar voor tools zoals HeidiSQL.
Toen het Magento-installatiescript lokaal werd uitgevoerd, heeft het verschillende tabellen in de lokale database gemaakt. Die tabellen moeten worden gemigreerd naar productie.
Exporteer eerst uw lokale database met behulp van uw databasemanager: Bestand> Exporteren.
Kies nu een locatie en sla de export op.
Maak nu een databasetunnel. Gebruik de Pagoda Box Terminal Client en geef de app op waarvan u de database probeert te openen, en de ID van de databasecomponent (bijvoorbeeld db1), zoals in dit voorbeeld:
$ pagoda -a magento tunnel -c db1 --OR-- $ pagoda --app = magento tunnel --component = db1
Zodra de tunnel is gevestigd, gebruikt u Sequel Pro (of iets dergelijks) om verbinding te maken met de database met behulp van de host en poort van de Pagoda Terminal-client ...
En de gebruikersnaam en het wachtwoord in uw Pagoda-databasereferenties. Deze werden automatisch gemaakt met uw database en zijn te vinden in het Pagoda Box-dashboard onder de databasecomponent (zie voorbeeld in stap 8).
Importeer vervolgens uw database in productie met Sequel Pro (of vergelijkbaar): Bestand> Importeren. Selecteer nu het database-exportbestand en Open.
Omdat we het installatiescript lokaal hebben uitgevoerd, is het ten slotte noodzakelijk om de basis-url rechtstreeks in de database aan te passen voordat u door de site bladert. Terwijl u nog steeds verbonden bent met de Pagoda Box-database in Sequel Pro, navigeert u / filtert u naar de core_config_data
tabel en bewerk de waarde voor de volgende paden:
web / unsecure / base_url web / secure / base_url
De waarden voor elk moeten er ongeveer zo uitzien:
Om uw IP's te beschermen tegen spam, gebruikt Pagoda Box het SMTP-mailprotocol om e-mail te verzenden via SMTP-inloggegevens van derden. In het Engels betekent dit dat u een bedrijf (zoals Gmail) nodig hebt dat e-maildiensten aanbiedt.
Ongeacht welke mailprovider u kiest, voer de accountreferenties van die provider in uw Pagoda Box-dashboard in. Het zou er ongeveer zo uit moeten zien:
Een paar terugkerende taken in Magento (bijvoorbeeld het versturen van nieuwsbrieven, logboekregistratie, klantmeldingen, etc.) moeten periodiek plaatsvinden. De cron.php
bestand dat zich in Magento's root bevindt, zal deze taken activeren. We zullen een Cron-taak instellen in het adminpaneel van de Pagoda Box om uit te voeren cron.php
elke 15 minuten. (Opmerking: zie de officiële gids voor informatie over het configureren van Magento-specifieke taken.)
Cron-taken kunnen worden toegevoegd of bijgewerkt via de Boxfile en vervolgens worden geïmplementeerd in Pagoda Box. Om een taak met intervallen van 15 minuten te plannen, voegt u het volgende toe aan uw Boxfile onder de web1:
component (verander de "magento" naar uw eigen appnaam / subdomein):
cron: - "* / 15 * * * *": "curl -s -o / dev / null http://magento.pagodabox.com/cron.php"
Uw bijgewerkte Boxfile zou er als volgt uit moeten zien:
web1: naam: mag-app shared_writable_dirs: - media - var php_version: 5.3.8 php_extensions: - pdo_mysql - mysql - simplexml - mcrypt - hash - gd - dom - iconv - curl - soap after_build: - "mv pagoda / local.xml app / etc / local.xml "cron: -" * / 15 * * * * ":" curl -s -o / dev / null http://magento.pagodabox.com/cron.php "db1: naam: mag -db type: mysql
Voeg het volgende toe in het adminpaneel van de Pagoda Box onder het tabblad Cron (verander de "magento" naar je eigen app-naam):
Commando: curl -s -o / dev / null http://magento.pagodabox.com/cron.php
Planning: * / 15 * * * *
Het zou er zo uit moeten zien:
Je hebt het zware werk al uit de weg geruimd. Uw Magento-applicatie is schaalbaar en wijzigingen kunnen eenvoudig overal worden toegepast $ git push pagoda - allemaal
.
In het vervolgartikel optimaliseren we Magento, voegen we een redis-cache, SSL- en domeinaliassen toe en schalen we de applicatie voor benchmarking en productie. Tot ziens!