Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
git:provider [2015/06/23 17:46] webproducer Hyperlinks hinzugefügt |
git:provider [2018/10/03 16:10] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Provider-Empfehlung ===== | + | ====== Provider-Empfehlungen ====== |
- | * Provider: LCube | + | Um ein Internetprojekt möglichst kostengünstig entwickeln zu können empfehle ich den Tarif "ReposDev Micro" vom Provider LCube. In diesem Tarif für den gnadenlos günstigen Preis von nur 2,99 Euro/Monat stehen bereits ein SSH-Zugang sowie die Versionsverwaltung GIT zur Verfügung. |
- | * URL: [[http://www.lcube-webhosting.de/]] | + | |
---- | ---- | ||
- | ==== Highlights vom Tarif "ReposDev Micro": ==== | + | Um das entwickelte Internetprojekt online in den Produktivbetrieb zu stellen empfehle ich den Wechsel zum "Premium"-Tarif vom Provider All-INKL.COM, da die Performance und Erreichbarkeit für ein Webhosting-Paket unschlagbar sind. Zu dem verfügt ALL-INKL.COM über eigene Rechenzentren und bieten einen 24-Stunden-Hotline. Des weiteren steht in jedem Tarif eine API zur Verfügung, mit der alle Funktionen der technischen Verwaltung (KAS) ausgeführt werden können! |
+ | **Wichtiger Hinweis**: Erst ab dem Webspace-Tarif ALL-INKL PREMIUM" steht der SSH-Zugang, und somit die Möglichkeit GIT-Repositories anzulegen, zur Verfügung! | ||
- | * GIT-Installation | ||
- | * SSH-Zugang mit Möglichkeit, eigenen SSH-Key zu generieren | ||
- | * MySQL-Datenbanken können für den externen Zugriff freigeschaltet werden | ||
- | * Cronjobs | ||
- | * PHP-Version kann selbst geändert werden | ||
- | * Zugriff auf die php.ini-Datei | ||
- | * monatlich kündbar (einen Monat kostenlose Testphase) | ||
- | * Gnadenlos günstiger Preis von 2,99 Euro/Monat (Stand: 22.03.2015) | ||
- | ---- | + | ^Provider^[[lcube|LCube]]^[[all-inkl|ALL-INKL.COM]]^ |
- | + | |Tarif|ReposDev Micro|Premium| | |
- | ==== GIT-Installation ==== | + | |Euro pro Monat|2,99 Euro|9,99 Euro| |
- | + | |SSH-Zugang|ja|ja| | |
- | **Möglichkeit 1: Einfache Installation** | + | |GIT-Repositories|unbegrenzt|unbegrenzt| |
- | + | |Inklusive Domains|1|10| | |
- | Die einfachste Variante ist, GIT über die dafür vom Provider zur Verfügung gestellte Oberfläche "SVN DEV ADMIN" zu installieren. Hier können beliebig viele Benutzer angelegt werden und sogar in Gruppen unterteilt werden. Dabei kann für jeden Benutzer individuell eingestellt werden, ob er nur Lese-, oder auch Schreibzugriff auf das Repository hat. | + | |Webspace|1 GB|250 GB| |
- | + | |MySQL-Datenbanken|5|50| | |
- | ---- | + | |Cronjobs|10|50| |
- | + | |E-Mail-Postfächer|500|2.000| | |
- | **Möglichkeit 2: Automatische Veröffentlichung der Änderungen** | + | |FTP-Accounts|500|unbegrenzt| |
- | + | |Let's Encrypt-SSL-Zertifikate|kostenlos|kostenlos| | |
- | Bei dieser Installation kann bei jedem Push eine automatische Kopie des Repositorys im htdocs-Webverzeichnis erstellt werden. Das heißt, dass Änderungen an der Webseite nach dem Hochladen in Git automatisch im Livebetrieb übernommen wird. Hierfür sind allerdings einige Voraussetzungen notwendig und es muss bei der Installation etwas tiefer in die Trickkiste gegriffen werden. | + | |API|nein|ja| |
- | + | |Link zur Webseite|https://www.lcube-webhosting.de/|[[https://all-inkl.com/PA58A470FA03850|https://all-inkl.com/]]| | |
- | **Voraussetzungen auf einem Windows-PC** | + | |
- | + | ||
- | * Putty und Putty Key Generator | + | |
- | * [[tortoisegit|git für Windows und TortoiseGit]] | + | |
- | * [[php:ide|lokale Testumgebung (z. B. Xampp oder ein NAS mit Webdiensten) für das Arbeitsverzeichnis]] | + | |
- | * Tarif "Tarif "ReposDev Micro" vom Provider LCube | + | |
- | + | ||
- | **Hinweise zur Installation** | + | |
- | + | ||
- | Standardmässig werden beim Provider LCube die Git-Repositorys per "https" übertragen, wobei die Repositories durch htaccess vor unbefugten Zugriff geschützt sind. Um nach einem Push einen Hook auszulösen, der eine automatische Übertragung zum Webverzeichnis veranlasst, ist jedoch ein Zugriff per SSH notwendig. Das hat den Vorteil, dass ein SSH-Key generiert werden kann und dadurch die Übertragung verschlüsselt wird. Ein Problem entsteht jedoch, wenn weitere Personen an diesem Projekt arbeiten sollen. Da der Zugriff nur noch ausschließlich per SSH möglich ist, bekommt jeder Entwickler einen vollwertigen SSH Zugang | + | |
- | und hat damit die gleichen Rechte und Möglichkeiten wie der Admin der Seite. | + | |
- | + | ||
- | Um Fehler zu vermeiden sollte idealerweise in der Testumgebung die gleiche PHP-Version installiert sein wie auf dem Webserver beim Provider. | + | |
- | + | ||
- | **Installation** | + | |
- | + | ||
- | Als erstes Putty öffnen und per SSH in den Server einloggen. Hinweis: Der Provider verwendet einen abweichenden SSH-Zugriffsport. | + | |
- | + | ||
- | cd git (ins "git"-Verzeichnis wechseln) | + | |
- | git init --bare Projektname (neue GIT-Projekt anlegen) | + | |
- | cd Projektname/hooks (in das Verzeichnis "hooks" wechseln) | + | |
- | + | ||
- | Als nächstes wird mit dem Texteditor "vi" eine Textdatei angelegt, in der zwei Zeilen eingefügt werden, wobei "webXX" durch den Benutzernamen und "Projektname" durch den Namen des Projektes ersetzt werden müssen. Beim Anlegen der Textdatei durch Windows ist darauf zu achten, dass die Textformat zwingend im Unix-Format erstellt wird. Beim DOS oder Windows-Format wird die Datei nicht fehlerfrei interpretiert! | + | |
- | + | ||
- | vi post-receive (neue Text-Datei "post-receive" anlegen und den Editor "vi" öffnen) | + | |
- | i (vom Befehlsmodus in den Editiermodus wechseln) | + | |
- | #!/bin/bash | + | |
- | GIT_WORK_TREE=/var/www/webXX/htdocs/Projektname git checkout -f | + | |
- | Taste [ESC] (Befehlsmodus verlassen) | + | |
- | :wq (Datei speichern und den Texteditor beenden) | + | |
- | chmod 755 post-receive (Hook muss ausführbar sein) | + | |
- | + | ||
- | Jetzt wird das Webverzeichnis angelegt, in welchem der Internetauftritt beim "push" automatisch veröffentlicht wird: | + | |
- | + | ||
- | cd ~ | + | |
- | cd htdocs | + | |
- | mkdir Projektname | + | |
- | + | ||
- | Um eine sichere SSH-Verbindung zu gewährleisten ist es empfehlenswert, jetzt einen [[:openssh|SSH-Key zu generieren]]. | + | |
- | + | ||
- | **Clone** | + | |
- | + | ||
- | Das neu angelegte Repository kann nur noch ausschließlich per SSH geklont werden. Hierbei ist zu beachten, dass LCube einen abweichenden SSH Zugangsport verwendet. Aufbau der URL für das Klonen per SSH: | + | |
- | + | ||
- | ssh://WEBXXX@SERVERNAME:PORT/PFAD/git/PROJEKTNAME | + | |
- | + | ||
- | Die Variablen "WEBXXX", "SERVERNAME", "PORT", "PFAD" und "PROJEKTNAME" müssen entsprechend ersetzt werden. | + | |
- | + | ||
- | Zum Klonen mit dem Windows-Explorer auf Ihrem lokalen PC in das Arbeitsverzeichnis in der Testumgebung wechseln und im Kontextmenü "Git Clone..." aufrufen. Hier die URL ausfüllen, die Option "Load Putty Key" aktivieren und den Putty-Key auswählen. | + | |
- | + | ||
- | **Git konfigurieren** | + | |
- | + | ||
- | Vor dem ersten Commit sollte der Benutzername und die E-Mail-Adresse des Entwicklers eingetragen laut [[config|dieser Dokumentation]] gespeichert werden. | + | |
- | + | ||
- | **Zugangsdaten zur Datenbank** | + | |
- | Da die Zugangsdaten zur Livedatenbank und Testdatenbank meist unterschiedlich sind, empfiehlt es sich, diese nur in einer separaten Datei (z. B. "db_config.php") zu schreiben und diese Datei im Projekt bei Bedarf per "include" einzubinden. Zunächst empfiehlt es sich, die Zugangsdaten von der Livedatenbank einzutragen und dise per "commit" und "push" an den Server zu übermitteln. So werden sie auch auch automatisch im Webverzeichnis gespeichert. | + | //Stand: 03.10.2018// |
- | Als nächstes sollte die Datei von zukünftigen Übermittlungen ausgeschlossen werden, indem Sie auf die "gitignore"-Liste gesetzt werden (Kontextmenü => "TortoiseGit" => "Add to ignore list" => [Dateiname auswählen]. Jetzt können die Zugangsdaten gegen die von der lokalen Testdatenbank ausgetauscht werden, ohne, dass diese zukünftig auf dem Server überschrieben werden. |