So bewegen Sie ein Magento von der Produktion in die Entwicklung

7

Ich habe von einem Freund gebeten, seine Magento-Site zu entwickeln. Seine Seite ist bereits in Betrieb. Und er wird mir den Zugriff auf den Server gewähren, auf dem sich seine Magento-Site befindet.

Um einige neue Funktionen zu entwickeln, muss ich sein laufendes Magento irgendwie in eine Entwicklungsumgebung klonen.

Normalerweise habe ich meine gesamte Magento-Instanz auf Amazon AWS gehostet und klone die Instanz einfach und starte dann eine weitere Instanz für die Entwicklung. Es ist einfach, es in AWS zu tun ...

Hat hier jemand Richtlinien, die mir helfen können? Vielleicht bringt mir ein Blog bei, wie man ein laufendes Magento in eine Entwicklungsumgebung klont?

Danke Jungs. Hier Lassen Sie mich den Fall klarer machen:

  • Befindet sich der Code unter Versionskontrolle? -- Nein
  • Hat die Magento-Site irgendwelche Änderungen? -- Könnte sein
  • Verwendet es Module von Drittanbietern? - Ich bin mir ziemlich sicher,
  • Wissen Sie, wie Sie eine Datenbanksicherung erstellen? - Ich habe vollen Zugriff auf die Datenbank und kann auf jeden Fall ein Backup erstellen.
Fan Zhang
quelle
1
Befindet sich der Code unter Versionskontrolle? Hat die Magento-Site irgendwelche Änderungen? Verwendet es Module von Drittanbietern? Wissen Sie, wie Sie eine Datenbanksicherung erstellen? - Es kann viele Dinge geben, die Sie berücksichtigen würden / könnten, nicht zu vergessen, darüber nachzudenken, wie Ihre Änderungen auch auf das Produktionssystem zurückkommen. Der Code wird normalerweise geklont und die Konfiguration bereitgestellt .
hakre
@hakre Kannst du genauer darauf eingehen? Ich meine, haben Sie Online-Tutorials oder Blogposts gesehen, die eine systematische Anleitung für mein Problem bieten? Ich möchte die Dinge nicht durcheinander bringen und es ist sehr wahrscheinlich, dass ich es vermasseln werde. Auch in Bezug auf die Anwendung von Änderungen in der Produktionsumgebung ist es auch ein Problem ..
Fan Zhang
Haben Sie schon einmal ein Magento von Grund auf manuell eingerichtet?
hakre
Und für die Tutorial-Situation kommt es wirklich darauf an, was Sie brauchen. Dies kann von - bis: Einrichten eines Magento-Staging-Bereichs , Magento-Entwicklungs-Setup , moderner Magento-Workflow und Entwicklungstools sein - Die normale Verarbeitung besteht darin, mit der Entwicklungsbox zu beginnen und dann das Staging zum Leben zu führen. Das Durchlaufen sollte automatisiert werden. Andernfalls nehmen Sie Probleme aus dem aktuellen Live-Setup auf, die schwer zu bekämpfen sind.
hakre
@hakre So ziemlich jedes Magento, das ich habe, habe ich von Grund auf neu eingerichtet. Dies ist das einzige Mal, dass ich versuche, eine Magento-Produktionsumgebung zu klonen.
Fan Zhang

Antworten:

7
  1. Erstellen und laden Sie ein GZIP von allem in dem Verzeichnis herunter, in dem sich die Magento-Site befindet.
  2. Führen Sie einen Speicherauszug der gesamten Datenbank durch. (Wenn Sie phpmyadmin haben, klicken Sie links auf den Namen der Magento-Datenbank, dann im oberen Menü auf Exportieren und dann auf "Los".)
  3. Laden Sie das gzip auf Ihren Entwicklungsserver hoch und extrahieren Sie es in dem Verzeichnis, das Sie für Magento verwenden (normalerweise Webstamm, es sei denn, Sie haben mehrere Sites).
  4. Erstellen Sie eine Datenbank auf dem Entwicklungsserver und importieren Sie den SQL-Export aus Schritt 2.
  5. Bearbeiten app/etc/local.xml- Ändern Sie den Datenbanknamen, den Benutzer und das Kennwort entsprechend Ihrer neuen Datenbank.
  6. Wechseln Sie in der neuen Datenbank zur Tabelle core_config_data und ändern Sie die URL web/unsecure/base_urlund web/secure/base_urldie URL Ihres Entwicklungsservers (einschließlich aller Unterordner, in denen sich Magento möglicherweise befindet). Vergessen Sie nicht einen Schrägstrich am Ende der URL.
  7. Löschen Sie cacheund sessionim varOrdner auf Ihrem Dev-Server.

Danach sollten Sie in der Lage sein, unter Ihrer Entwickler-Server-URL zur Site zu navigieren. Der Administratorpfad (z. B. devserver.com/admin) ist derselbe wie auf dem alten Server. Ihre Datei- / Ordnerberechtigungen müssen ebenfalls festgelegt werden. Informationen dazu finden Sie hier: http://devdocs.magento.com/guides/m1x/install/installer-privileges_after.html

AreDubya
quelle
Danke für deine Antwort. Könnten Sie die Erlaubnis genauer beschreiben? Was ist, wenn die Berechtigung in der Produktionsumgebung für einen bestimmten Zweck geändert wurde? Wenn ich dem von Ihnen angegebenen Link folge, "setze" ich die Berechtigungen so ziemlich auf die Standardeinstellungen zurück.
Fan Zhang
2
Das Obige ist eine allgemeine Anleitung. Daher müssen Sie für jede Site, die Sie klonen, möglicherweise Anpassungen vornehmen, die Ihren Anforderungen entsprechen. Sofern auf Ihrem Entwicklungsserver nicht dasselbe Betriebssystem wie auf dem Live-Server ausgeführt wird, benötigen Sie möglicherweise unterschiedliche Dateiberechtigungen, um dem Betriebssystem zu entsprechen. Davon abgesehen würde ich mit den obigen Schritten (1-7) beginnen und von dort aus Anpassungen an Berechtigungen und Eigentumsrechten vornehmen. Die Dateiberechtigungen können vom Live-Server zum Dev-Server verwaltet werden, aber bei verschiedenen Benutzern usw. finde ich es im Allgemeinen am einfachsten, den Dev-Server so zu konfigurieren, als würde er von vorne beginnen.
AreDubya
1
Wenn Sie tar verwenden, bleiben Ihre Dateiberechtigungen erhalten - askubuntu.com/questions/225865/… . Dies kann hilfreich sein, wenn dies die Berechtigungen sind, die Sie für Ihren Entwicklungsserver benötigen. Wenn nicht, können Sie den Link in meiner Antwort verwenden, um sie zurückzusetzen. @hakre macht einen guten Punkt bezüglich der Bereitstellung wieder in Betrieb, aber ich denke, das hängt von Ihrem normalen Workflow, Ihrer IDE usw. ab. Diese Antwort behandelt nur das Klonen, aber es gibt viele Optionen für die Bereitstellung, abhängig davon, wie umfangreich die Arbeit ist, die Sie ausführen werden , Ihr Workflow, Zeitrahmen (geänderte Daten live) usw.
AreDubya
1
Es ist auch eine gute Idee, eine Art Mail-Catcher einzurichten. Sie möchten immer noch die E-Mail-Funktionalität testen, aber natürlich nicht versehentlich echte Kunden per E-Mail benachrichtigen! Es gibt ein großartiges Rubinjuwel namens Mailtrap. Es gibt auch Dienste wie mailtrap.io, die Sie verwenden können, indem Sie die SMTP-Einstellungen von magento anpassen. Wirklich, Sie sollten den Kunden- und Bestellverlauf auf Ihrer Entwicklungsseite löschen, damit Sie nicht mit den privaten Daten von echten Kunden herumspielen.
Benz001
1
Dieses Rezept funktioniert auch für Magento 2, mit der einzigen geringfügigen Änderung, dass Sie in Schritt 5 die Änderungen an den Datenbankinformationen in app / etc / env.php vornehmen, wodurch local.xml ersetzt wurde.
Fernando Echeverria
0

• Exportieren Sie die Datenbank Ihres aktuellen Magento

• Erstellen Sie eine leere Datenbank und importieren Sie die zuvor exportierte Datenbanksicherung

• Sobald der Datenbankimport erfolgreich abgeschlossen wurde, müssen Sie die sichere und unsichere base_url in Ihrer neu erstellten Datenbank ändern. Diese finden Sie in der Tabelle core_config_data mit folgenden Pfaden:

           web/secure/base_url

           web/unsecure/base_url

• Erstellen Sie eine Zip-Datei mit Dateien und extrahieren Sie sie auf einem neuen Server.

• Öffnen Sie die Datei app / etc / local.xml aus dem Magento-Verzeichnis und bearbeiten Sie die folgenden Codezeilen:

   <host><![CDATA[localhost]]></host>

   <username><![CDATA[username]]></username>

   <password><![CDATA[password]]></password>

   <dbname><![CDATA[dbname]]></dbname>

localhost : Der Hostname Ihres Datenbankservers. Oft ist dies "localhost". Benutzername : Der SQL Server-Benutzername, mit dem eine Verbindung zur Datenbank hergestellt wird. Kennwort : Das SQL Server-Kennwort, mit dem eine Verbindung zur Datenbank hergestellt wird. Datenbankname : Der Name der Datenbank, zu der Sie eine Verbindung herstellen möchten.

• Löschen Sie alles aus var / cache / und aus var / session / des Magento-Verzeichnisses.

• Wechseln Sie schließlich in phpmyadmin zu Ihrer neuen Datenbank und führen Sie die folgende SQL-Abfrage aus, um die Speicher-, Gruppen-, Administrator- und Kunden-IDs zurückzusetzen:

SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

Das ist alles, du bist fertig.

Fayyaz Khattak
quelle