Wir verwenden das ExpressionEngine CMS (php) zum Erstellen von Websites. Für jede Site richten wir ein Subversion-Repository ein und binden die EE-Installation sowie alle verwendeten benutzerdefinierten Vorlagen, Bilder, Javascript usw. ein. Im Repository ist die Datei enthalten, die alle Umgebungsvariablen und die .htaccess-Datei enthält.Beibehalten der Konfigurationsunterschiede zwischen Entwicklungs- und Live-Umgebungen während der Bereitstellung von SVN
Wir haben einen Entwicklungsserver mit einer Arbeitskopie des Repositorys, die über Post-Commit aktualisiert wird, die wir verwenden, um zu entwickeln. Wenn wir bereit sind zu veröffentlichen, erstellen wir einen Zweig in Subversion, nehmen alle für die Produktionsumgebung erforderlichen Änderungen vor, markieren die Versionsnummer, exportieren das Repository, laden es in ein neues Verzeichnis auf dem Live-Server hoch und symbolisieren die Dateien an Ort und Stelle. Ein Rollback ist so einfach wie eine Symlink-Verknüpfung zur vorherigen Version.
Das Problem ist dieser Schritt, in dem wir die Umgebungsvariablen ändern müssen, die für die Entwicklungs- und Produktionsserver unterschiedlich sein müssen. Das sind Dinge wie das (Kommentieren) von Htaccess - Regeln, die zu den falschen Stellen umleiten, Google Map API - Schlüssel austauschen, weil die Domains unterschiedlich sind, Skripte ausführen, die das Javascript in eine verschleierte Datei minimieren, um die Größe und HTTP - Verbindungen zu halten usw .
Die Frage ist, wie könnte das mehr automatisiert werden? Wir würden uns freuen, das Freigabeverfahren auf das Nötigste zu reduzieren. Ich bin vertraut mit der Existenz von Werkzeugen wie Capistrano und Make, aber ich bin nicht sicher, wie ich sie dazu bringen könnte, alle notwendigen Dateien zu modifizieren ... wie würdest du so etwas organisieren? Ist es das wert, Zeit zu investieren, wenn es vielleicht einmal alle paar Wochen passiert?
Ich denke, wir werden eine Variante für diese Antwort verwenden. Anstatt $ _SERVER ['HTTP_HOST'] zu verwenden, verwenden wir wahrscheinlich Apache mod_env und php's getenv() ... und haben dann unterschiedliche Werte für die Variable in .htaccess .htaccess-dev, wie du es erwähnt hast. Alles, was übrig bleibt, ist etwas in unserem Makefile zu installieren, um das Javascript und ähnliches zu minimieren. –