Dieses Tutorial hilft Ihnen bei der Vorbereitung einer Magento-Installation auf hohen Datenverkehr, bessere Ladezeiten und einfachere laufende Verwaltung der Standorte. Bereit?
Sie können den fertigen Code für dieses Lernprogramm herunterladen oder den Schnellstart "magento-basic" von Ihrem Pagoda Box-Konto aus starten, um eine Arbeitsseite zu testen.
Fair Warning: Dieses Tutorial kann Ihr Leben verändern. Pagoda Box ist kein traditionelles Hosting. Die Lehren in diesem Artikel helfen nicht nur bei der Skalierung von Magento, sondern schaffen auch die Grundlage für einen fortschreitenden Workflow für die Entwicklung von Produktion zu Produktion.
Hinweis: Wenn Sie Git bereits verwenden, können Sie diesen Abschnitt überspringen. Wenn nicht, enthält der Leitfaden Einrichten von Git spezifische Anweisungen zum Erstellen eines SSH-Schlüssels sowie Links zum Herunterladen und Installieren von Git (auch unten)..
Während Sie nur SFTP für Pagoda Box verwenden können, integriert der offiziell empfohlene (und effizienteste) Workflow Git in Ihre tägliche Entwicklung. Git ermöglicht Funktionen wie Zusammenarbeit, einheitliche Codeverteilung, Deployments, Deploy-Historie und Rollback von Code. Während die meisten dieser Funktionen für FTP-Benutzer verfügbar sind, vereinfacht die Verwendung von Git die Integration.
Wenn Sie Pagoda Box voll ausnutzen möchten, laden Sie Git herunter und lernen Sie die Grundlagen. Je nach Betriebssystem kann die Einrichtung geringfügig variieren. Unabhängig von Ihrem Betriebssystem sind die Befehle nach der Installation von Git identisch.
Die Verwendung von Git zur Verwaltung der Zusammenarbeit und Versionskontrolle kann eine kurze Lernkurve erfordern. Im Allgemeinen gibt es jedoch nur drei Befehle, die wir fortlaufend verwenden, um Änderungen lokal zu übernehmen und dann in Pagoda Box bereitzustellen:
git add .
- Fügt Ihrem Repository lokale Dateien hinzugit commit -m "eine Nachricht darüber, was Sie getan haben"
- Übernimmt Ihre ÄnderungenGit Push Pagode - alle
- Änderungen werden an das Pagoda Box Repository weitergeleitet (standardmäßig automatisch bereitgestellt)Wir werden diese später verwenden.
* / \ / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | / \ + _ / / / | \ \ \ _ + || * ||| * || | + || * || + | ____ _ ____ ___ ____ _ ____ _____ __ | _ \ / \ / ___ | / _ \ | _ \ / \ | __) / _ \ \ / / | | _) / _ \ | | _ | | | | | | | / _ \ | _ \ | | | \ / | __ / ___ \ | _ | | | _ | | | _ | / ___ \ | | _) | | _ | / \ | _ | / _ / \ _ \ ____ | \ ___ / | ____ / _ / \ _ \ ____ / \ ___ / _ / \ _ \ Willkommen in Ihrem Pagoda Box-Terminal-Client. ------------------------------------------- --- -------------------------------------- ------------ --------------------- Genießen.
Pagoda Box bietet einen Terminal-Client, mit dem Sie eine Anwendung über die Befehlszeile klonen, erstellen, implementieren, löschen, umbenennen und rückgängig machen können. Später in diesem Lernprogramm verwenden wir den Client, um mit Sequel Pro einen sicheren Tunnel zur Live-Magento-Datenbank zu erstellen (der Vorgang ist für andere Datenbankverwaltungs-Tools wie HeidiSQL ähnlich)..
Der Pagoda Box Terminal Client ist ein Rubygem, daher ist die Installation ziemlich einfach. Zunächst muss Ruby installiert werden. Die Installation ist für jedes Betriebssystem unterschiedlich.
Sobald Ruby installiert ist, führen Sie einfach den folgenden Befehl aus, um Pagoda RubyGem zu installieren:
Auf Mac oder Linux:
$ sudo gem installieren Pagode
Unter Windows:
$ gem installierte Pagode
Führen Sie dann Folgendes aus, um zu überprüfen, ob der Pagodenstein ordnungsgemäß installiert ist:
$ Pagodenliste
Wenn Sie den Gem zum ersten Mal verwenden, werden Sie nach dem Benutzernamen und dem Kennwort Ihrer Pagoda Box gefragt. Nachdem Sie diese eingegeben haben, erwarten Sie eine Liste Ihrer Pagoda Box-Anwendungen. Wenn Sie keine Anwendungen erstellt haben, ist die Liste leer.
Wenn Sie eine Fehlermeldung erhalten, handelt es sich höchstwahrscheinlich um ungültige Anmeldeinformationen. Sie können die Anmeldeinformationen, die der Edelstein verwendet, überprüfen oder ändern, indem Sie die Datei auf Ihrem lokalen Computer unter bearbeiten ~ / .pagodarc
. Stellen Sie sicher, dass Sie genau die Anmeldeinformationen verwenden, die Sie in Ihrem Pagoda Box-Konto verwenden. (Hinweis: Hierbei handelt es sich um eine versteckte Datei. Sie müssen also versteckte Dateien aktivieren oder über das Terminal öffnen. Beachten Sie außerdem, dass die Datei Ihre Anmeldeinformationen zweimal speichert. Bearbeiten Sie daher bei Bedarf beide.)
Hinweis: Überspringen Sie diesen Schritt, wenn Sie bereits über eine lokale Installation von Magento verfügen.
Wenn Sie es noch nicht haben, stellen Sie sicher, dass Sie lokale Webserver- und Datenbankverwaltungssoftware verwenden. Je nach Betriebssystem stehen verschiedene Optionen zur Verfügung. Eine übliche Option für Mac ist MAMP oder WAMP für Windows. Beide sind kostenlos und einfach einzurichten.
Sobald Ihre lokale Entwicklungsumgebung eingerichtet ist, laden Sie Magento herunter und folgen Sie der offiziellen Anleitung, um Magento lokal zu installieren.
Sie können das automatische Installationsskript von Magento verwenden, um die Anwendung in Ihrer lokalen Umgebung einzurichten. Aufgrund der verteilten Cloud-Architektur von Pagoda Box wird Magento jedoch nicht direkt in Ihrer Produktionsumgebung installiert. Der Pagoda Box-Workflow und die Architektur erfordern, dass Sie Codeänderungen lokal vornehmen, ein Commit ausführen und dann in der Produktion bereitstellen. Dieser Workflow ermöglicht die Zusammenarbeit und Entwicklung> Bereitstellung> Best Practices für die Produktion.
Hinweis: Bei Pagoda Box kann eine YAML-Boxdatei in das Stammverzeichnis Ihres Code-Repositorys aufgenommen werden. Die Boxdatei ist zwar optional, bietet jedoch erweiterte Funktionen, z. B. die Bearbeitung Ihrer gehosteten Umgebung in jeder Bereitstellung. Wir verwenden die Boxdatei in diesem Tutorial ausführlich, um die Aufgaben zu vereinfachen und das Repository für Pagoda Box wiederverwendbar zu machen.
Erstellen Sie eine Datei mit dem Namen "Boxfile" im Stammverzeichnis Ihrer lokalen Magento-Installation und kopieren Sie dann die folgenden Dateien in Ihre Boxfile (Erklärung unten):
web1: name: 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
Diese Boxdatei dient mehreren Zwecken. Zuerst wird ein erstellt web1
Komponente, benennt sie dann mag-app
.
Zweitens identifiziert das Boxfile Medien
und var
als freigegebene beschreibbare Verzeichnisse. Auf diese Weise können Benutzer Bilder, Videos und andere Medien auf eine verteilte Magento-Cloud-Site hochladen, ohne dass Instanzen sich selbst aus dem Takt bringen.
Wenn ein Verzeichnis als beschreibbar markiert ist, werden die Inhalte nicht mehr von Ihrem lokalen Repository aus in Pagoda Box bereitgestellt. Immer, wenn lokale Dateien in diesen Verzeichnissen bereitgestellt werden müssen, müssen sie manuell über SSH oder SFTP kopiert werden. Sie können SSH / SFTP auch verwenden, um bei Bedarf Dateien von der Pagoda Box auf Ihren lokalen Computer zu übertragen.
Die Boxdatei gibt außerdem an, welche PHP-Version und -Erweiterungen bei der Bereitstellung in Ihre Webinstanzen eingeschlossen werden. Auf diese Weise werden sowohl die Umgebung als auch die Anwendung zusammen versioniert. Das Zurücksetzen auf eine vorherige Bereitstellung umfasst die korrekte PHP-Version und -Erweiterungen. Die Liste der PHP-Erweiterungen in dieser Boxdatei wurde den offiziellen Systemanforderungen von Magento entnommen.
Tipp: Wenn Git in Ihrer lokalen Umgebung installiert ist, verwenden Sie die
.Gitignore
Datei, um die in Ihrer Boxdatei angegebenen beschreibbaren Verzeichnisse zu ignorieren. Identifizierung dieser Verzeichnisse innerhalb der.Gitignore
Datei hilft, die Größe Ihres Repos und die Bereitstellungszeit zu reduzieren. Zusätzlich zu den beschreibbaren Verzeichnissen können Sie auch dieDownloader
Verzeichnis zum.Gitignore
Datei, da sie lokal verwendet wird und nicht auf der Pagoda Box.
Nachdem Sie Git und den Terminal-Client installiert, die Boxdatei konfiguriert und den lokalen Quellcode abgeschlossen haben, können Sie Pagoda Box starten.
Wenn Sie noch keinen haben, erstellen Sie ein kostenloses Pagoda Box-Konto. Sie müssen keine Kreditkarte eingeben, um Magento zu Testzwecken zu installieren.
Falls Sie dies noch nicht getan haben, folgen Sie dieser Anleitung zum Hinzufügen eines SSH-Schlüssels in Ihrem Pagoda Box Admin-Bedienfeld. Das Handbuch enthält spezifische Anweisungen zum Einrichten eines SSH-Schlüssels unter Mac oder Windows.
Nachdem Sie ein Pagoda Box-Konto erstellt und einen SSH-Schlüssel eingerichtet haben, gehen Sie zur Startseite Ihres neuen Kontos und klicken Sie auf die Schaltfläche "Neue Anwendung", um eine neue Anwendung zu erstellen.
Hinweis: Dieses Tutorial nennt unsere Beispielanwendung "Magento". Der App-Name wird auch für das Pagoda Box-Repository, die Unterdomäne für die frisch bereitgestellte Anwendung (magento.pagodabox.com) und der Benutzername im SFTP-Modus verwendet. Ersetzen Sie "magento" durch "your-app-name-here", sofern dies im weiteren Verlauf des Tutorials angebracht ist.
Wählen Sie anschließend aus den 3 Optionen die Magento-Site aus. Da Sie bereits über eine angepasste Version von Magento verfügen, wählen Sie 'Empty Repo' aus, um die Bereitstellung mit SFTP oder Git durchzuführen, benennen Sie Ihre Anwendung und klicken Sie auf "Anwendung starten"..
Sie werden aufgefordert, Ihre bevorzugte Bereitstellungsmethode (Git oder SFTP) auszuwählen. Klicken Sie auf Ihre Präferenz und folgen Sie den Anweisungen auf dem Bildschirm.
Sie können die Anweisungen auf dem Bildschirm aus dem Pagoda Box-Dashboard kopieren und in Ihr Terminal einfügen, nachdem Sie mit Terminal das Verzeichnis (cd) in das Stammverzeichnis Ihres Projekts geändert haben.
Die eingefügten Befehle führen Folgendes aus:
git init
- Initialisieren Sie Ihr Magento-Projekt als Git-Repositorygit add .
- Fügen Sie alle Dateien aus dem Projekt zum Repo hinzugit commit -m "Ihre Commit-Nachricht"
- Übertragen Sie Dateien mit einer Nachricht, mit der Sie den Bereitstellungsverlauf in Zukunft schnell überprüfen können, falls Sie Änderungen rückgängig machen oder ändern müssengit remote add pagoda [email protected]: magento.git
- Fügen Sie Pagoda Box als Remote hinzu (die spezifische git-URL für Ihre Anwendung wird auf diesem Bildschirm und im App-Dashboard angezeigtGit Push Pagode - alle
- Geben Sie Ihren lokalen Code an das entfernte Repository der Pagoda Box weiter. Solange Sie sich im Zweig "master" befinden (der Standardeinstellung), stellt Pagoda Box Ihren Code automatisch bereit und führt die Anweisungen aus, die wir in der Boxdatei festgelegt haben. Die automatische Bereitstellung kann im Admin-Dashboard deaktiviert oder für die automatische Bereitstellung von einem anderen Git-Zweig als Master konfiguriert werden.Wenn Sie sich für SFTP entschieden haben, führt Sie Pagoda Box durch das Einrichten der Anmeldeinformationen und eines Kennworts. Verbinden Sie sich über SFTP mit Pagoda Box und laden Sie Ihren Magento-Quellcode in die Code
Verzeichnis.
Es gibt zwei Möglichkeiten, eine Datenbank für Pagoda Box zu erstellen. Jeder hat Vorteile, die unten erklärt werden:
Die Boxdatei erstellt bei der Bereitstellung automatisch eine Datenbankkomponente, sofern diese Komponente (db1
, db2
, etc.) existiert nicht bereits. Das Deklarieren der Datenbank in der Boxdatei spart jetzt etwas Zeit und macht die Bereitstellung mehrerer Magento-Sites aus einer standardisierten Codebasis in der Zukunft viel einfacher. (Hinweis: Nur Cloud-DBs können aus der Boxdatei bereitgestellt werden. Wenn Sie eine größere, dedizierte oder redundante Datenbank benötigen, lesen Sie die Dashboard-Option weiter unten in diesem Schritt.) Fügen Sie der Boxdatei Folgendes hinzu:
db1: name: mag-db typ: mysql
Ihre aktualisierte Boxdatei sollte folgendermaßen aussehen:
web1: name: 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: name: mag - db typ: mysql
Übernehmen Sie anschließend die Änderungen an der aktualisierten Datei und drücken Sie die Änderungen an Pagoda Box:
$ git Festschreiben -m "Pagode config" $ git Push-Pagode --all
Sie können eine Datenbank auch über das Pagoda Box Dashboard erstellen. Hier fügen Sie eine größere, dedizierte oder redundante Datenbank hinzu.
Klicken Sie zunächst im Dashboard auf "Datenbank hinzufügen".
Pagoda Box durchläuft eine Reihe von Bildschirmen, um Ihre Datenbank zu konfigurieren, abhängig von Ihrer Auswahl. Wenn Sie die dedizierte Option gewählt haben, werden Sie aufgefordert, die Größe Ihrer Datenbank wie folgt zu bestimmen:
Cloud-Datenbanken werden normalerweise innerhalb von Minuten bereitgestellt. Wenn Sie sich für Dedicated entschieden haben, werden Sie nicht ungeduldig. Sie können bis zu 90 Minuten warten, bis ein großer Server nach Ihren Vorgaben bereitgestellt wird.
Ihre Datenbank generiert automatisch Anmeldeinformationen, wenn sie in Pagoda Box erstellt wird. Wir verwenden diese Anmeldeinformationen, um Magento in der Produktion zu konfigurieren.
Da Magento jedoch sowohl in lokalen Umgebungen als auch in der Produktion verwendet wird, müssen für jede Datenbank unterschiedliche Anmeldeinformationen angegeben werden. Wir implementieren Hooks in der Boxdatei, um diesen Vorgang zu vereinfachen, indem Sie während der Bereitstellung Skripts oder Befehle ausführen.
Im Falle von Magento tauschen wir die local.xml
Datei bei der Bereitstellung. Auf diese Weise ohne manuelles Austauschen der Anmeldeinformationen app / etc / local.xml
Die Datei enthält automatisch lokale Datenbankanmeldeinformationen, aber die Produktionsdatenbankanmeldeinformationen für Pagoda Box.
Erstellen Sie zuerst ein Verzeichnis mit dem Namen Pagode
in root, kopiere dann Magentos app / etc / local.xml
in das neue Verzeichnis.
Bearbeiten Sie als Nächstes local.xml
So fügen Sie die Anmeldeinformationen der Pagoda Box-Datenbank in Ihr Konto-Dashboard ein. Beachten Sie, dass Pagoda Box drei Authentifizierungsebenen verwendet, sodass andere Benutzer nicht auf Ihre Datenbank zugreifen können, wenn Ihre Anmeldeinformationen beeinträchtigt werden.
Fügen Sie Folgendes in Ihre Boxdatei ein web1
Abschnitt zum Erstellen des Bereitstellungshooks.
after_build: "mv pagoda / local.xml app / etc / local.xml"
Ihre aktualisierte Boxdatei sollte folgendermaßen aussehen:
web1: name: 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: name: mag-db typ: mysql
Übernehmen Sie dann die Änderungen und drücken Sie auf Pagoda Box:
$ git add. $ git Festschreiben -m "Pagode config" $ git Push-Pagode --all
Mit den gleichen Tools, die Sie zur Verwaltung einer lokalen Datenbank verwenden, können Sie eine Live-Datenbank auf Pagoda Box sicher verwalten. Wir werden Sequel Pro für dieses Beispiel verwenden, aber für Tools wie HeidiSQL ist der Prozess ähnlich.
Wenn das Magento-Installationsskript lokal ausgeführt wurde, wurden mehrere Tabellen in der lokalen Datenbank erstellt. Diese Tabellen müssen zur Produktion migriert werden.
Exportieren Sie zunächst Ihre lokale Datenbank mit Ihrem Datenbankmanager: Datei> Exportieren.
Wählen Sie nun einen Ort und speichern Sie den Export.
Richten Sie jetzt einen Datenbanktunnel ein. Geben Sie mit dem Pagoda Box Terminal Client die App an, auf deren Datenbank Sie zugreifen möchten, und geben Sie die ID der Datenbankkomponente (z. B. db1) wie in diesem Beispiel an:
$ pagoda -a magento tunnel -c db1 -OR-- $ pagoda -app = magento tunnel -component = db1
Sobald der Tunnel eingerichtet ist, verwenden Sie Sequel Pro (oder ähnliches), um über den vom Pagoda Terminal Client bereitgestellten Host und Port eine Verbindung zur Datenbank herzustellen.
Und den Benutzernamen und das Passwort in Ihren Pagodendatenbank-Anmeldeinformationen. Diese wurden automatisch mit Ihrer Datenbank erstellt und befinden sich im Pagoda Box Dashboard unter der Datenbankkomponente (siehe Beispiel in Schritt 8)..
Als nächstes importieren Sie Ihre Datenbank mit Sequel Pro (oder ähnlich) in die Produktion: Datei> Importieren. Wählen Sie nun die Datenbankexportdatei aus und klicken Sie auf Öffnen.
Da wir das Installationsskript lokal ausgeführt haben, müssen Sie vor dem Durchsuchen der Site die Basis-URL direkt in der Datenbank anpassen. Navigieren / filtern Sie in Sequel Pro, während Sie noch mit der Pagoda Box-Datenbank verbunden sind core_config_data
Tabelle und bearbeiten Sie den Wert für die folgenden Pfade:
web / unsicher / base_url web / secure / base_url
Die Werte für jeden sollten ungefähr so aussehen:
Um Ihre IPs vor Spam zu schützen, verwendet Pagoda Box das SMTP-Mail-Protokoll, um E-Mails über SMTP-Anmeldeinformationen eines Drittanbieter-E-Mail-Providers zu senden. Im Englischen bedeutet dies, dass Sie ein Unternehmen (wie Google Mail) benötigen, das Mail-Dienste anbietet.
Unabhängig davon, welchen E-Mail-Anbieter Sie auswählen, geben Sie in Ihr Pagoda Box-Dashboard Kontoanmeldeinformationen dieses Anbieters ein. Es sollte ungefähr so aussehen:
Einige wiederkehrende Aufgaben in Magento (z. B. das Versenden von Newslettern, das Reinigen von Protokollen, Kundenbenachrichtigungen usw.) müssen regelmäßig ausgeführt werden. Das cron.php
Eine Datei in Magentos Wurzel löst diese Aufgaben aus. Wir werden einen Cron-Job im Pagoda Box-Admin-Panel einrichten cron.php
alle 15 minuten. (Hinweis: Informationen zum Konfigurieren von Magento-spezifischen Aufgaben finden Sie im offiziellen Handbuch.)
Cron-Jobs können über die Box-Datei hinzugefügt oder aktualisiert und dann in Pagoda Box bereitgestellt werden. Um eine Aufgabe in Abständen von 15 Minuten zu planen, fügen Sie der Boxdatei unter dem folgenden Eintrag Folgendes hinzu: web1:
Komponente (ändern Sie das "Magento", um auf Ihren eigenen App-Namen / Ihre eigene Subdomain zu verweisen):
cron: - "* / 15 * * * *": "curl -s -o / dev / null http://magento.pagodabox.com/cron.php"
Ihre aktualisierte Boxdatei sollte folgendermaßen aussehen:
web1: name: 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: name: mag -db Typ: MySQL
Fügen Sie im Pagoda Box-Adminbereich unter der Registerkarte Cron Folgendes hinzu (ändern Sie das "Magento", um auf Ihren eigenen App-Namen zu verweisen):
Befehl: curl -s -o / dev / null http://magento.pagodabox.com/cron.php
Zeitplan: */fünfzehn * * * *
Es sollte so aussehen:
Sie haben schon das schwere Heben aus dem Weg bekommen. Ihre Magento-Anwendung ist skalierbar und Änderungen können problemlos in allen Instanzen implementiert werden $ git Push Pagode - alle
.
Im Folgeartikel optimieren wir Magento, fügen einen Redis-Cache, SSL- und Domain-Aliase hinzu und skalieren die Anwendung für Benchmarking und Produktion. Bis bald!