Eigentlich müsste ich ja dringend für ne Klausur lernen, aber ich nehme mir jetzt mal die Zeit.
Ich habe jetzt eine ubuntu vm mit gitlab auf dem ESXi.
Warum kein BitBucket?
Kann ich da auch noch andere Sachen wie Code im git Server ablegen?
Du legst nicht AUCH Code im Git hab, sondern du legst NUR Code im Git ab! Git ist ein Versionskontrollsystem FÜR Code. Damit du zu alten Ständen wieder zurückspringen kannst, dir ansehen kannst was du gemacht hast etc.
Kann/soll man gitlab auch für die "normale" Datensicherung, z.B von Office Dokumenten nutzen?
Kann man, ja. Aber prinzipiell ist Git für Code gedacht, und zwar auch nur geschriebenen Code. Irgendwelche durch Paketmanager installierten Abhändigkeiten landen da NICHT drin, genauso wenig wie kompilierte Versionen deiner C++ Programme. Code und NUR Code.
Was mir allerdings noch nicht klar ist, dass wenn ich nun eine weitere vm mit einem Webserver habe, wo dann der Webspace, bzw. die auszuführenden Scripts und Content liegen.
Lass das mit der VM sein. Installier dir einfach XAMPP auf deiner Kiste und arbeite damit. Das ist deutlich einfacher und problemloser.
Liegen die bei der git vm, oder werden die Files dann noch zum Webserver synchronisiert, und werden dort gehostet?
Dein Git-"Server", den du dann beispielsweise hoffentlich später bei BitBucket hast, dient als zentrale Stelle zum Ablegen deines Codes. Code, den du lokal geschieben hast, pusht du in dein Git-Repo auf BitBucket. Auf deinem Produktionsserver klonst du eben dieses Projekt dann wieder und lässt es da laufen. Wenn du dann eine neue Version livestellen willst, führst du nach dem Committen lokal bei dir "git push" aus (Code landet auf BitBucket) und auf dem Server "git pull" (Code wird von BitBucket geholt). Sollte irgendwas dann kaputt sein kannst du einfach zu einem vorherigen Commit zurückspringen.
Was hält Ihr von Dreamweaver als Webeditor?
Absolut gar nichts, aber wirklich NICHTS.
Das ist genau einer dieser zurückgeblieben Technologien von denen wir dich die ganze Zeit versuchen abzuhalten.
Eclipse und Netbeans hätte ich auch noch.
Auch wenn NetBeans deutlich moderner ist, es gibt Besseres.
Gerade auch für die genannten Frameworks, bei welchen ich noch keine Ahnung habe, wo die dann ausgeführt, bzw. eingebunden werden! OO ist nicht gerade meine Stärke, das kommt noch hinzu. Ich habe mehr prozedural programmiert, bislang. Mit OO habe ich eigentlich nur im Zusammmenhang mit einem Compiler gearbeitet. Wie ich aber die Klassen von bootsrap oder Laravel dann auf den Server linke, bzw. in was für einer Form der Code und die Klassen vorhanden sind, da habe ich noch keinen Plan von.
PHP ist eine Scriptsprache. Da wird NICHTS kompiliert und NICHTS gelinkt, sondern NUR ausgeführt. Du kannst einfach eine Datei erstellen, da "<?php echo 'Hallo Welt';" reintippen und dann mit "php <Dateiname>" ausführen und das rennt dann. Mehr nicht. Bei PHP wird nicht gelinkt, sondern required. PHP bietet die beiden Befehle "require" und "include" (Ersteres wirft ne Exception, wenn die Datei nicht da ist, letzteres nur ne Warning. Man benutzt eigentlich meistens "require"). Damit lassen sich weitere PHP-Dateien an exakt der Stelle, an der der Befehl steht, einbinden. Sieht dann bspw. so aus:
Code:
# Datei1.php
<?php
require 'Datei2.php';
Code:
# Datei2.php
<?php
echo rand(1, 5);
Das gibt dann bspw. "4" aus. Nun gibt es unter PHP den einzig waren Paketmanager, der auf den Namen "Composer" hört. Der Composer ist ein CLI-Script, welches die Abhängigkeiten eines Projektes auf einer Datei namens "composer.json" liest und diese herunterlädt und in ein Verzeichnis "./vendor" runterlädt. Zudem erstellt er eine Datei "./vendor/autoload.php". Und diese Autoload-Datei requirest du bzw das Framework einfach in der index.php. Damit werden alle Klassen, die das Framework hat, geladen. Der Webserver wiederrum wird so eingestellt, dass erst geprüft wird, ob eine Datei existiert, die den Namen der angefragten Resource besitzt, und sollte dem nicht so sein werden ALLE Anfragen auf die index.php umgeleitet. Der Laravel-Router prüft dann die eingegebene Route und lädt den entsprechenden Controller/die Klasse. Kein Kompilieren und kein Linken. Nur Scripting.
Von sowas wenn möglich die Finger lassen. Es ist nicht nötig ne weitere Angriffsfläche zu bieten, nur weil man zu faul ist selber etwas zu konfigurieren.
Nur habe ich jetzt halt ein eigens git. Ich weiss noch nicht, was das alles kann, aber das möchte ich jetzt benutzen.
Wenn du noch kein Plan von Git hast, dann lass es erstmal weg. Zu viel ist auch nicht gut beim Lernen.
Den Editor, den Du verlinkt hast, scheint auch für den Browser zu sein. Ich habe noch nie einen Browser Editor genutzt, der über HTML, bzw. Forencode, oder sowas raus gegangen ist. Ich würd da schon gerne einen klassischen Editor, bzw. eine IDE für Windows bevorzugen. Wobei ich mich bei gitlab noch frage, obs da auch Editoren im Browser gibt.
WebStorm/PhpStorm sind genauso native Anwendungen wie jede andere IDE auch. Die einzige Ausnahme bietet hier Atom, welches ein Editor ist, der mit Hilfe des Electron Frameworks auf Webtechnologien basiert. Aber den benutzt du deshalb noch lange nicht im Browser. Der wird genauso installiert wie die anderen Kollegen auch.
Wie gehe ich da jetzt vor? Wie kriege ich die Domains vom Backup auf den git, und von da aus auf den Webspace, bzw. umgekehrt? Die Enwicklungsumgebung ist jetzt mal zweitrangig...
Ich glaube für den Anfang ist es besser, wenn du das überspringst.
Brauch ich für die URI von git nen Nameserver, oder geht das auch per IP?
Ein Git-Repo ist nur ein Ordner mit Objekten. Prinzipiell kannst du alles nutzen, auch Windows-Netzwerknamen. Hauptsache der Ordner wird gefunden. Ein Client wie GitLab ist nicht nötig. Einfach Git auf deiner Kiste installieren und in einem beliebigen Ordner auf der Platte "git init" ausführen: Tada, Git-Repo erstellt. Aber wie gesagt, lass das erstmal weg.
Wie funktionert das über SSH?
Genauso wie du es auch lokal auf der Konsole machst.
Muss ich da für die Konfiguration putty nehmen?
Da PuTTY der einzige brauchbare SSH-Client für Windows ist wahrscheinlich ja. Aber du kannst auch einfach das Fenster deiner VM nutzen.
Wenn ich auf eine Shell verzichten kann, um so besser.
NEIN! Definitiv ganz falsche Einstellung! Auch wenn Microsoft es dir anders eintrichtert, die Shell ist einer der besten Dinge, die dir passieren kann, auch unter Windows (solange man die PowerShell nutzt). Lagere deine Arbeit nicht auf irgendwelche GUI-Programme aus, sondern mache es auf der Konsole. Vor der Konsole braucht man keine Angst haben. Das ist einer der simpelsten Dinge an deinem PC. Nutz am Besten so lange es geht für alles die Shell. Denn für Git wirst du ne Shell brauchen, für den Composer brauchst du eine, für's Deployment brauchst du eine (installier bloß keine GUI auf dem Prod-Server) und für vieles Weitere auch.
Brauch ich für die URI von git nen Nameserver, oder geht das auch per IP? Wie funktionert das über SSH? Muss ich da für die Konfiguration putty nehmen? Im Moment steht da der Hostname in der URI... Wenn ich auf eine Shell verzichten kann, um so besser.
Ausserdem habe ich bei der Installation von git die e-mail Konfiguration abgebrochen. Brauch ich die? Und wenn ja, kann ich das nachträglich noch nachholen?
git config --global user.email "mail@example.com"
Beim Committen speichert Git den Namen und die Mail desjenigen, der committet hat, damit man nachvollziehen kann wer eine Änderung gemacht hat. Wenn du keine Mail angibst, wird standardmaßig "DEIN_USERNAME@DEIN_RECHNERNAME" benutzt. Und das willst du wahrscheinlich nicht.
"git add *" wird höchstwahrscheinlich nicht das tun, was du willst. Was du willst ist "git add --all". Das Sternchen bezieht nämlich auch Dateien mit ein, die in der .gitignore stehen.