2010-10-21 8 views
5

Ich habe vor kurzem einen Service gestartet, was bedeutet, dass ich nicht mehr direkt auf der Website arbeiten kann, oder ich riskiere dies.Best/Better/Optimaler Weg zur Einrichtung eines Staging/Development Servers

Ich habe keine "Standard" oder "beste" Möglichkeit gefunden, einen Entwicklungsserver zu machen. Die beiden Dinge, die ich gesehen habe, sind

a) Mit einem GIT oder SVN, die Daten zu hosten (das ist mein Problem nicht ganz lösen, muss ich irgendwo entwickeln zu können, vorzugsweise nicht mein Computer zu Hause)

b) Capistrano (für Rails, gibt es etwas für PHP?)


die aktuelle Lösung, die ich an bin auf der Suche ist eine vollständige Kopie des Servers, auf „development.domain.com“ setzen, das würde dann erlauben Sie mir, an allem zu arbeiten, und ich kann einfach die Akten zum Hauptteil kopieren.

Ist dies eine praktikable Lösung? Was ist die optimale Lösung? (Separate Server, Spezialwerkzeuge etc.)


EDIT Dieses System durch eine Reihe von Entwicklern entwickelt werden. Die Servereinstellungen wurden erheblich angepasst, um die volle Funktionalität und Sicherheit des Systems zu gewährleisten. Die Entwicklung auf meinem eigenen Computer ist keine praktikable Lösung, auch nicht auf einem Intranet-System, da sich keiner unserer Programmierer am selben Ort befindet.

Ich bin auf der Suche nach einer On-a-Server-Lösung.

+6

Wenn Sie keine Quellcodeverwaltung verwenden, sind Sie 'viva la vida loca'. Verwenden Sie also immer die Quellcodeverwaltung. Egal was du für Dev/Staging machst, benutze die Quellcodeverwaltung. Mach es um deiner selbst willen oder eines Tages wirst du sehr, sehr leid tun. –

+0

Ich dachte, dass die Quellcodeverwaltung besser für ein System geeignet ist, das Leute auf ihren eigenen Seiten, Skripts, Modulen usw. installieren. Ich schätze, das ist, wo ich falsch liege? Die Sache ist, dass das System, wie es ist (hat Tonnen von Funktionen kommen), bereits 70mbs ist, integriert mit Blogs etc. etc. –

Antwort

3

Drei Vorschläge:

1) Sie sind auf dem richtigen Weg mit dafür sorgen, dass Ihr Quellcode in irgendeiner Form von der Quellcodeverwaltung (git und svn sind beide ausgezeichnete Wahl). Dies sollte Priorität # 1 sein.

2) Haben alles, was von einer Standardkonfiguration abgewichen ist, in irgendeiner Form der Quellcodeverwaltung. Dies bedeutet, dass Ihre Apache-Konfigurationen, Ihre php.ini, Datenbank-Konfigurationen usw. sind. Wenn Sie dann Ihre Staging- und Dev-Server einrichten, können Sie (relativ) sicher sein, dass auf all Ihren Servern alles gleich ist.

3) Sehen Sie sich eine Art von Build-Skripten an, entweder ant, phing, oder alles, was Sie verwenden können, um Ihre Umgebung von Grund auf auf jedem Rechner aufzubauen.

Es gibt viele andere Dinge, die Sie tun können, aber wenn Sie diese drei implementieren, werden Sie auf dem besten Weg sein, einen Dev/Staging-Server einzurichten. Dies wird Ihnen auch den zusätzlichen Vorteil bieten, dass alle Ihre Entwickler eine ähnliche Umgebung haben, wenn sie ihre Entwicklung machen.

0

Ich begann ein Git-Repository als Ausgangspunkt zu verwenden. Die Hauptentwicklung erfolgt auf meinem lokalen Mac. An einem bestimmten Punkt schiebe ich die Änderungen und ziehe sie auf einen Entwicklungsserver, wo weitere Tests durchgeführt werden. Wenn alles in Ordnung ist, ziehe ich Dinge auf den Entwicklungsserver. Das ist mehr oder weniger so, Capistrano funktioniert, denke ich. Ich habe ein zentrales Skript für diese Aufgaben geschrieben, damit ich Entwicklungs- oder Produktionsserver mit einem einzigen Befehl aktualisieren kann.

+0

In Anbetracht dieser Entwicklung wird nicht alles von mir selbst sein und ich kann die Servereinstellungen nicht reproduzieren (zumindest nicht machbar) –

+0

Durch die Nutzung eines Systems, das virtuelle Umgebungen und ein gemeinsames Quell-Repository unterstützt, können Einstellungen einfach verwaltet werden. Alle Einstellungen sind lokal oder können per Skript aktualisiert werden. Ich habe MAMP oder WAMP benutzt, um sehr komplexe Software zu entwickeln. Sie möchten Ihre Einstellungsabhängigkeit niedrig halten. Erstellen Sie Skripts zum Einrichten Ihrer Umgebung, lassen Sie sie von Benutzern ausführen. Es lohnt sich! – TheJacobTaylor

+0

Machen Sie Ihren Teil der Entwicklung lokal mit MAMP (oder was auch immer) und überprüfen Sie sie auf dem Entwicklungsserver (überprüfen Sie hier, ob alles in Ordnung ist). Der Entwicklungsserver sollte mehr oder weniger (je mehr desto besser) identisch mit dem Produktionsserver sein, auf dem das endgültige System ausgeführt wird. Wenn Sie sich in einem Team entwickeln, funktioniert das zumindest in unserem Team gut. Git ist dafür perfekt. –

2

http://www.wampserver.com/ für Fenster

oder

www.mamp.info für mac

oder

Last auf eine VM

Ich persönlich mache meine Programmierung auf einem Mac, Führen Sie VMWare mit suse oder redhat für die Server-Testumgebung aus. Ich habe Mamp in der Vergangenheit benutzt und es funktioniert gut; aber manchmal arbeite ich gerne in einem echten Betriebssystem.

Das, oder richten Sie einen physischen Testserver ein. PHP/(Auswahl der DB) läuft jetzt auf allem (Mac, Windows, Linux)

Je nachdem, wie Sie es tun möchten, könnten Sie VMWare direkt auf dem Produktionsserver und Entwickler dort installieren; Das heißt, wenn Sie den Server selbst ausführen. Wenn Sie zusammen oder auf Shared Hosting angemeldet sind, können Sie das wahrscheinlich nicht tun.

-Mario

+0

Alles wird auf einem sehr sicheren/leistungsfähigen Server gehostet - der Versuch, seine Einstellungen auf meinem Computer zu duplizieren, ist nahezu unmöglich. –

+0

Die Definition von sicher und mächtig und jedermanns persönliche Meinung. Eine solche Definition existiert nicht. – lsiunsuex

+0

drücken Sie Enter, bevor ich fertigstellen konnte. Wenn Sie die Einstellungen des Servers nicht auf einem anderen Computer reproduzieren können; Wie werden Sie mit Serverfehlern umgehen? Festplattenfehler? Eine Sicherheitsverletzung? Sie müssen in der Lage sein, den Server zu reproduzieren. Wenn Sie sich Gedanken über die Versionskontrolle machen, ist die Reproduzierbarkeit des Servers im Falle eines katastrophalen Ausfalls genauso wichtig. – lsiunsuex

1

Ihre Entwicklung, Staging und Produktionsumgebungen sollte genau gleich sein sonst Sie die Änderung von etwas Bombardierung riskieren, wie Sie zwischen Umgebungen bewegen. Offensichtlich wird Ihre Entwicklungsumgebung Entwicklungseinstellungen (z.PHP's display_errors on, möglicherweise ein entfernter Debugger, etc.) aber ansonsten sollten sie so identisch wie möglich sein.

Wie alle anderen erwähnt haben, wenn Sie keine Versionskontrolle verwenden, bitten Sie um Ärger. Dies ist nicht nur eine gute Vorgehensweise für die Entwicklung, sondern erleichtert auch die Bereitstellung zwischen Ihren verschiedenen Umgebungen. Dies gilt insbesondere dann, wenn mehrere Entwickler an einem Projekt arbeiten.

+0

Ich würde argumentieren, dass die Test- und Produktionsumgebungen fast identisch sein müssen, während die Entwicklungsumgebung sicher sehr unterschiedlich sein kann. – meagar