
Ich arbeite an einer Lampenanwendung. Wir haben 2 Server (Debian) Live und Dev.
Ich arbeite ständig an der Hauptentwicklung, um neue Funktionen hinzuzufügen und Fehler zu beheben.
Wenn alles gut funktioniert, übertrage ich den entsprechenden Code per SCP in das Live-System. Die Datenbank (MySQL) befindet sich lokal auf jedem Rechner.
Das ist jetzt wirklich eine ziemlich einfache Einrichtung und ich möchte den Workflow ein wenig verbessern. Ich verwende Git und GitHub zur Versionskontrolle. Zugegebenermaßen habe ich eigentlich nur einen Zweig verwendet. Es können 3 verschiedene Entwickler sein, die zu unterschiedlichen Zeiten am Code arbeiten. Wir verwenden alle denselben Linux-Benutzernamen, um uns mit dem Dev-Server zu verbinden und den Code bei Bedarf direkt zu bearbeiten. Normalerweise übertrage ich den Code dann am Ende des Tages auf GitHub und pushe ihn.
Bedenken Sie jedoch, dass es nicht einfach ist, diesen Code auf einem lokalen Computer auszuführen, da viele Apache- und Subdomain-Konfigurationen auf einem lokalen Computer nicht funktionieren würden. Daher ist es wichtig, auf dem Entwicklungsserver und nicht lokal zu arbeiten.
Ich muss einen neuen Prozess erstellen, da wir jetzt einen Hauptstamm und einen Zweig mit einer umfangreichen Code-Neuschreibung benötigen.
Wie kann ich das am besten machen? Soll ich für jeden Entwickler einen eigenen Unix-Login erstellen und für die Änderungen einen eigenen Arbeitsbereich auf dem Dev-Server einrichten? Beispiel:
/var/www/mysite_derek /var/www/mysite_paul /var/www/mysite_mike
ich denke, sie können einen Pull vom Hauptzweig durchführen, dann ihren eigenen Zweig erstellen und ihn wieder einfügen. Ich bin mir jedoch nicht sicher, wie das mit Git lokal und mit GitHub funktionieren wird.
muss ich auch verschiedene GitHub-Benutzerkonten erstellen?
Ich möchte dies auf die „richtige“ und zukunftssichere Weise tun, um viele potenzielle Entwickler zu haben, aber ich möchte es auch nicht zu kompliziert machen. Eine einfache und elegante Lösung ist vorzuziehen.
irgendwelche Empfehlungen oder Vorschläge?
Antwort1
Eine Lösung, die wir mit etwa 12 Entwicklern verwenden, ist die folgende. Sie funktioniert sehr gut und ermöglicht ein flexibles Setup, ohne dass die Konfiguration des Servers geändert werden muss. Aufgrund der Netzwerklatenz und der Geschwindigkeit des Serverspeichers ist sie wahrscheinlich nicht auf 40-50 Entwickler skalierbar.
Wir teilen die/var/www/Tree über Samba, sodass die Windows-Clients ihre lokalen IDEs und VCS-Clients zum Bearbeiten auf dem LAMP-Server verwenden können. Niemand hat ein Konto auf dem Linux-Server.
Erstellen Sie Ihre Verzeichnisstruktur wie folgt:
/var/www/mysite.com/www/derek/
/var/www/mysite.com/www/paul/
/var/www/mysite.com/www/mike/
Erstellen Sie in Ihrem internen DNS einen Wildcard-Eintrag, der **.dev* auf die IP-Adresse Ihres Lamp-Servers verweist. Ich gehe davon aus123.45.67.89Hier.
Definieren Sie in Apache einen virtuellen Host, der ungefähr wie folgt aussieht:
<VirtualHost 123.45.67.89>
ServerName lamp.dev
ServerAlias *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/%-4/%1/
</VirtualHost>
Die wichtigen Teile sind der ServerAlias-Platzhalter, der diesen virtuellen Host dazu bringt, auf alle eingehenden Anfragen zu antworten, die mit '.dev' enden. Der andere wichtige Teil ist der VirtualDocumentRoot, der komplex aussieht, aber nicht so schlimm ist. Er zerlegt einfach den eingehenden Hostnamen in Teile und konstruiert den DocumentRoot aus den Teilen. Sie könnenLesen Sie hier mehr darüber.
Jetzt kann jeder Entwickler besuchenhttp://derek.www.mysite.com.dev/und ihre persönliche Arbeitskopie meiner Site anzeigen.
Um eine neue Site, Subdomäne oder einen neuen Entwickler hinzuzufügen, müssen Sie lediglich die richtigen Verzeichnisse auf der Samba-Freigabe erstellen.
Für die Bereitstellung auf den Produktionsservern empfehle ich Ihnen, scp wegzulassen und sich stattdessenCapistranound das hervorragende zentralisierte Web-FrontendWebistrano. Capistrano ist ein wenig Rails-zentriert, aber es sind nur ein paar Zeilen nötig, um es beispielsweise an PHP anzupassen. Webistrano bietet eine zentrale GUI, mit der Sie eine Site direkt aus der Versionskontrolle per Knopfdruck bereitstellen oder aktualisieren können. Leicht skriptbasierte Bereitstellungen, die zuverlässig wiederholt und bei Problemen zurückgesetzt werden können, sollten nicht außer Acht gelassen werden.