Wie Sie Anwendungen von der Entwicklung bis zur Produktion korrekt bereitstellen und wie Sie mit mehreren Standortkonfigurationen umgehen können. Alle meine Entwicklung sind durch Svn bei var/svn/myapp/trunk und der eigentliche Produktionscode ist in/var/www/myapp getan.Wie Sie Ihre PHP-Anwendungen korrekt bereitstellen?
Ich checke den neuesten Code auf meinem lokalen Rechner in ein Verzeichnis namens "myapp_latest_svn". Ich habe Website und Standort-spezifischen Code in meinem Haupt settings.php, die H_PATH = ‚http://myapp.com‘ & db Konfigurationseinstellungen für db_host, db_user_name und db_password hat, die, wie Sie in lokalen Maschineneinstellungen kennen unterscheidet (wo localhost/myapp. com ist nur ein Apache-Alias) & auf der Produktion (Live-Site läuft auf myapp.com) Server.
Auch die .htaccess-Datei unterscheidet sich von der auf dem Produktionsserver. Kurz gesagt, es gibt eine Reihe von Unterschieden zwischen Entwickler und Produktion.
Ich behalten alle meine Arbeit in SVN. Jeden Morgen benutze ich SVN Update, das den neuesten Code in mein lokales SVN-Repository aktualisiert. Wenn ich bereit bin, live zu gehen, baue ich eine Veröffentlichung mit Svn Commit.
Dann in der Version muss ich daran denken, alle entsprechenden Dev-Dateien zu ihrer Produktion Gegenstück zu ändern. Jetzt musste ich die Produktion settings.php & .htaccess manuell bearbeiten, um die sitespezifischen Änderungen widerzuspiegeln.
Ich bin auf der Suche nach einem automatisierten Weg von der Entwicklung zur Produktion mit Versionierung und keine manuelle Bearbeitung von Dateien, die fehleranfällig und schlechte Praxis ist.
Eine Möglichkeit besteht darin, die Produktionsversion von Dateien schreibgeschützt zu machen (0444). Auf diese Weise, wenn ich einen SVN-Export, sie nicht von der dev-Version der Dateien überschrieben werden, und ich habe keine Sorgen über die Bearbeitung von Dateien auf jeder Umzug von der Entwicklung zur Produktion. Aber das ist eine schlechte Art, Dinge wie kontinuierliche Integration zu tun.
Auch durch mehrere Kopien der settings.php (eine für localhost, beta und prod). Dann mit einem Shell-Skript , das von Svn exportiert, und dann, sobald der Export fertig ist, ersetzt es die Einstellungen.php mit der richtigen settings.php, abhängig von der Position, die wir bereitstellen. So ist alles automatisiert. Aber das ist auch ein lahme Weg zu gehen.
Letzter Weg ist
if(eregi ("myapp.com$", $_SERVER['HTTP_HOST'])){
define('H_PATH', 'myapp.com');
} else {
define('H_PATH', 'localmyapp.com');
}
Das ist in Ordnung so weit wie settings.php betrifft. Aber was ab dem .htaccess, können Sie nicht wie oben in .htaccess überprüfen.
Was ich nicht tun möchte jedes Mal, wenn ich meine Website bereitstellen, dass ich Einstellungen ändern muss.
Mein DB-Schema ist nicht in der Versionskontrolle, so db ist kein Problem mit mir, nur die settings.php und .htaccess.
Auch wie kann ich svn sagen, einige Verzeichnisse nicht zu aktualisieren, da das auch ortsspezifisch ist (/ log,/cache,/assets,/downloads). Auch ich muss den Apache (www_data) Schreibzugriff für die oben genannten Dateien intakt erhalten.
Schließlich möchte ich nicht das leere Stammverzeichnis und die .svn-Dateien auf den Produktionsserver kopieren, wenn ich exportieren.
Wie kann ich Phing oder sogar ein Shell-Skript zu integrieren, ohne diese Probleme beim Aufbau von Svn zu Produktionsservern zu verursachen.
Dies könnte für viele Möchtegern-App-Entwickler da draußen in der Wildnis nützlich sein.
Vielen Dank im Voraus,
ocptime
Großen Link! Vielen Dank! –
Können Sie erklären, was die Symlinking-Asset-Verzeichnisse tun? – dave1010