Was ist die beste Drupal-Bereitstellungsstrategie?
Arbeite ich an meinem ersten Drupal-Projekt auf XAMPP auf meinem MacBook. Es ist ein Prototyp und erhält positives feedback von meinen Kunden.
Werde ich das Projekt bereitstellen auf einem Linux-VPS zwei Wochen später. Gibt es einen besseren Weg, als 're-do' Ing alles auf dem server von Grund auf neu?
- installieren Drupal
- download Module (CCK, Views, Date, Calendar)
- erstellen Sie den Inhalt
- ...
Dank
InformationsquelleAutor der Frage ohho | 2009-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein paar Tipps:
Verwenden der Quellcodeverwaltung, NICHT FTP/etc. für die Dateien. Es spielt keine Rolle, was Sie verwenden; wir neigen zu spin-up ein Unfuddle.com subversion-Konto für jeden Kunden, so dass Sie einen Platz haben, melden Sie bugs, aber der kritische erste Schritt ist der vollständige source-tree auf Ihrer Website in version control. Wenn Sie änderungen auf dem Test-server oder staging-server, die Sie sehen, wenn Sie arbeiten, verpflichten Sie sich, dann aktualisieren Sie auf die live-server. Rollbacks und-Bereitstellung bekommt viel, viel einfacher. Für Cluster aus mehreren webheads Sie können den Vorgang wiederholen, oder rsync aus einem einzigen "kanonischen" server.
Wenn Sie SVN, aber Sie können auch die Verwendung von CVS Check-out von Drupal und anderen Modulen/Themen und die SVN/CVS-Metadaten werden in der Lage sein, um nebeneinander Leben glücklich.
Für sperrige Ordner wie die Dateien-Verzeichnis, einen symbolischen Link in das 'richtige' Position zu zeigen, um eine server-side-Verzeichnis außerhalb des webroot-Verzeichnisses. Dass können Sie Ihre source-control-repo enthalten alle den code, und ein symlink ist, anstatt den gesamten code und alle Dateien, die Nutzer hochgeladen haben.
Datenbanken sind komplizierter; die Reinigung der dev - /staging-DB und drücken Sie es, um zu Leben, ist am einfachsten für die Ersteinrichtung aber es gibt ein paar Falten, wenn dabei die inkrementelle DB wird aktualisiert, wenn Benutzer auf der live-Website werden auch die Erzeugung von Inhalten.
Ich habe eine Präsentation auf Drupal deployment best practices letzten Jahr. Fühlen Sie sich frei, überprüfen Sie die Folien aus.
InformationsquelleAutor der Antwort Eaton
Features.Modul ist ein äußerst mächtiges Werkzeug für die Verwaltung von Drupal-Konfiguration ändern.
Inhaltstypen, CCK Einstellungen, Ansichten, Drupal-Variablen, Kontexten, Imagecache presets, Menüs, Taxonomie, und die Berechtigungen können alle gerollt in eine Funktion, die überprüft werden können, in der Versionskontrolle. Von dort aus, den Einsatz einer neuen Website, oder schieben Sie die änderungen an einer bestehenden, ist leicht verwaltet werden mit den Funktionen, die die Benutzeroberfläche oder Drush.
Stellen Sie sicher, Sie installieren Strongarm.Modul für den Export von drupal Konfig wird gespeichert in der Variablen-Tabelle. Sie können auch statische Inhalte/nodes (ie: über uns, faqs, etc) in die Funktionen durch die Installation uuid_features.- Modul.
Hände nach unten, dies ist der beste Weg, um die Arbeit mit anderen Entwicklern auf der gleichen Website, und verschieben Sie Ihre Website-von der Entwicklung zum Testen, Staging und Produktion.
InformationsquelleAutor der Antwort rcourtna
Hatten wir eine ausgiebige Diskussion über diese an meinem Arbeitsplatz, und die Art und Weise schliesslich einigten wir uns auf schob code-updates (einschließlich Module und themes) von der Entwicklung über die Inszenierung bis zur Produktion. Wir verwenden Subversion für dieses, und es funktioniert gut so weit.
Was besonders wichtig ist, dass man einen Prozess automatisieren bei der betätigung der Datenbank zurück aus der Produktion, so dass Ihre Entwickler können Ihre Kopien der Datenbank als in der Nähe der Produktion wie möglich. In einer mission-critical-Umgebung, so dass Sie absolut sicher sein möchten, ein Modul zu aktualisieren, ist nicht zu Schlauch in Ihrer Datenbank. Der Prozess, den wir verwenden, ist wie folgt:
Und das ist es. Eine Sache kann man nie wirklich erwarten, für eine community framework wie Drupal ist in der Lage sein zu verschieben Ihre Datenbank von Tests, um die Produktion, nachdem Sie live gehen. Von da an, werden alle Datenbank-Bewegungen sind aus der Produktion zu testen, das erschwert die Bereitstellung-Prozess etwas. Seien Sie vorsichtig! 🙂
InformationsquelleAutor der Antwort Lendrick
Verwenden wir die Funktionen Modul ausgiebig zu capture-Funktionen und dann installieren Sie Sie einfach an den Produktionsstandort.
InformationsquelleAutor der Antwort Niels
Ich bin überrascht, dass niemand erwähnt die Bereitstellung Modul. Hier ein Auszug aus seiner Projekt-Seite:
InformationsquelleAutor der Antwort Dave
Arbeite ich noch nicht mit Drupal, aber ich arbeite mit Joomla eine Menge. Ich bereitstellen, archivieren Sie alle Dateien im web-root (tar und gzip in meinem Fall, aber man könnte zip) und dann hochladen und erweitert das Archiv auf den Produktions-server. Ich nehme einen SQL-dump (mysqldump -u user-h host -p Datenbankname > dump.sql), hochladen, und verwenden Sie den reverse-Befehl zum einfügen der Daten (mysql -u produser -h prodDBserver -p prodDatabase < dump.sql). Wenn Sie keinen shell-Zugriff Sie können laden Sie die Dateien ein zu einer Zeit und schreiben Sie ein PHP-Skript zu importieren dump.sql.
InformationsquelleAutor der Antwort
Jede version control Systems (GIT, SVN) + Features Modul zum bereitstellen von Drupal code + benutzerdefinierte Einstellungen (Inhaltstypen, benutzerdefinierte Felder, module-Abhängigkeiten, Ansichten etc.).
Als Bereitstellen Modul ist noch in der Entwicklung Modus, so können Sie wie zu verwenden Knoten exportieren - Modul in Drupal 7 bereitstellen von Inhalten /Knoten.
InformationsquelleAutor der Antwort amitgoyal
Wenn Sie neu in Einsatz (und oder Drupal), dann werden Sie sicher, dass Sie alles in einem Klumpen.
Sie müssen sehr vorsichtig, sobald es Benutzern, zu bewirken-Inhalte, während Sie arbeiten, auf einen anderen kopieren.
Es möglich ist, lassen sich die Tabellen beziehen sich auf den tatsächlichen Inhalt, Taxonomie, Benutzer, etc. anstatt Ihre Struktur. Drücken Sie dann denen, die im Hinblick auf die Konfiguration an. Jedoch, das hinzufügen einer Größenordnung von Komplexität.
Entschuldigt, wenn die Bereitstellung ist so etwas ein Alter Hut, so ist das vage beleidigend.
InformationsquelleAutor der Antwort
Eine gute Strategie, die ich gefunden habe, und bin derzeit in der Umsetzung ist die Verwendung einer Kombination von bereitstellen von Modul zu migrieren, meine Inhalte, und dann drush zusammen mit dbscripts zu merge und update des core und der Module. Es kümmert sich um die Datenbank Zusammenführen, auch wenn Sie live-Inhalte, Sicherheit und Modul-updates, und momentan habe ich mir gesetzt bis zum arbeiten mit svn.
InformationsquelleAutor der Antwort Ryan L