Contao Projekt mit Git und Composer veröffentlichen - Teil 2

Im ersten Teil ging es um die Installation mittels Github und Composer ein Contao-Projekt einzurichten, welches unter einem Git-Repository versionierbar ist.

In diesem Tutorial soll es sich um das Einrichten eines Remote-Repository und das Veröffentlichen der Seite auf einer Subdomain gehen. Dabei soll diese Subdomain jederzeit mit Git aktualisiert werden können.

Projekt zum Leben erwecken

Als erstes erwecken wir unser Contao-Projet zum Leben und reichern es kurzerhand mit Beispieldaten an. Als erstes erstellen wir zwei Ordner: files/data\my-theme und templates\my-theme. Im Anschluss erstellen wir ein Theme im Contao-Backend und weisen die erstellten Ordner zu.

contao_initialize_1

Es fehlt natürlich ein dazu gehöriges Seitenlayout welches wir anschließend erstellen, gepaart ...

contao_initialize_2

...mit einer minimalen Seitenstruktur:

contao_initialize_3

Der Startseite weisen wir unser Layout zu...

contao_initialize_4

...und injizieren einen Beispieltext mittels einem Artikelblock:

contao_initialize_5

Das mehr oder weniger schöne Ergebnis sollte dann im Frontend so aussehen:

contao_initialize_6

Mit der Konsole zu arbeiten macht zwar eine Menge Spaß, nur für das Programmieren eignet sich eine IDE, beispielsweise PhpStorm (oder als OpenSource-Lösung Netbeans) besser. Daher erstellen wir ein neues Projekt in unserem Projektordner (c:\Projekte\neues-contao-projekt) und haben sofort die Git-Unterstützung gleich mit eingerichtet. Zu Beispielzwecken kopieren wir das Haupttemplate fe_page.html5 von system/modules/core/templates/frontend/fe_page.html5 nach "templates/my-theme". Damit können wir später updatesicher das Template abändern. Damit die Seite ein wenig Farbe bekommt, erstellen wir eine style.css unter files/data/my-theme/css/. Die beiden Dateien spielen eigentlich keine Rolle, ich will jedoch damit Ein- und Ausschecken mit Git anschaulich machen.

phpstorm_1

Mit einem Rechtsklick auf das Projekt und anschließend im Kontextmenü auf Git » Add (optional Strg + Alt + A) fügt ihr alle Änderungen zum Repository hinzu.

phpstorm_2

Im Anschluss übergeben (commit) wir die Änderungen an das Repo (Rechtsklick Projekt » Git » Commit Directory... - Strg + K)

phpstorm_3

Remote-Repository einrichten

Lokales Repo ist zwar nice, ein Repo auf einem entfernten Server ist natürlich noch besser. Das geht am besten mit einem Linux-Server oder einen Hoster, welcher einen SSH-Zugang nebst tollen Tools zur Verfügung stellt, beispielsweise Uberspace - Kann 30 Tage gratis getestet werden). Das soll keine Werbung darstellen, bin jedoch super zufrieden! Wir bleiben für dieses Tutorial bei Uberspace und erstellen auf dem Server ein neues Bare-Repository:

mkdir neues-contao-projekt.git
cd neues-contao-projekt.git
git --bare init

Jetzt müssen wir nur noch das Remote-Repository zu unserem lokalen Repository hinzufügen. Da ich leider nicht in PhpStorm das Menü für das hinzufügen des Remote-Repos gefunden habe, wurde es kurzerhand per Konsole hinzugefügt und bei der Gelegenheit sofort eingecheckt:

git remote add origin [UBERSPACE_NAME]@[SERVER].uberspace.de:/home/[UBERSPACE_NAME]/neues-contao-projekt.git
git add --all
git commit -m "Initial commit"
git push origin master

Nach einem Neustart von PhpStorm kann die Funktion Push Commits benutzt werden. Wer hier einen besseren Workaround dafür hat, kann es einfach in den Kommentaren hinterlassen ;)

phpstorm_4

phpstorm_5

Projekt veröffentlichen

Um das COntao-Projekt auf dem Server zu veröffentlichen, benötigen wir wieder Git und Composer. Git ist bei Uberspace vorinstalliert, also müssen wir nur noch Composer installieren.

Composer auf Uberspace installieren

Wir wechseln in das bin-Verzeichnis und beziehen mittels Curl die composer.phar:

curl -s https://getcomposer.org/installer | php
chmod +x composer.phar

Damit wir nicht immer den kompletten Pfad zur composer.phar angeben müssen, setzen wir einen Alias:

vi ~/.bashrc
# Folgende zeile hinzufügen:
alias composer='/home/[UBERSPACE_NAME]/bin/composer.phar'

Im Anschluss die Bash neu einlesen (nennt man das so?), so erspart man sich das aus- und wieder einloggen:

source .bashrc

Wir wechseln nach /var/www/virtual/[UBERSPACE_NAME] und clonen unser privates Git-Repository in eine Subdomain:

git clone [UBERSPACE_NAME]@[SERVER].uberspace.de:/home/[UBERSPACE_NAME]/neues-contao-projekt.git neues-contao-projekt.domain.de

Das ist natürlich nicht so lauffähig - also clonen wir uns Contao aus Github:

git clone https://github.com/contao/core.git contao-core

...und kopieren alles bis auf den .git-Ordner und die .gitignore-Datei nach neues-contao-projekt.domain.de. Wer es bunt mag, nimmt den Midnight Commander (mc) zum kopieren ;) Im Anschluss kommt wieder composer zum Einsatz und löst die Abhängigkeiten auf. Wir wechseln wieder in unsere erstellte Subdomain neues-contao-projekt.domain.de und lassen den Composer die Abhängigkeiten installieren:

composer install --prefer-dist

Oh Schreck - Contao ist nur noch auf Englisch. Wenn man Contao von Github bezieht, werden nur noch die englischen Sprachdateien ausgeliefert. Wie im Teil 1 benötigen wir dafür den Transifex-Client für Linux und ein Account auf www.transifex.com. Da Pyton auf Uberspace schon installiert ist, können wir ganz einfach den Transifex-Client per pip installieren:

pip install transifex-client

Im Anschluss müssen die Zugangsdaten unter ~/.transifexrc abgelegt werden:

vi ~/.transifexrc

Mit dem selben Inhalt wie unter Windows:

[https://www.transifex.com]
hostname = https://www.transifex.com
username = username
password = password
token =

Flugs zur subdomain navigiert und die deutschen Sprachpakete (Optional für alle Sprachen: tx pull -a) installiert:

tx pull -l de

Noch schnell die lokale Datenbank auf dem Server importiert und im Anschluss wie in Teil 1 Contao konfiguriert. Danach sollte unter neues-contao-projekt.domain.de die Seite im gewohnten Antlitz erscheinen.

Das Veröffentlichen der Etnwicklungsprojektes wird nun zum Kinderspiel, da man nur noch mit:

git pull

...das Projekt auf den aktuellen Entwicklungsstand updaten kann. Ein Wehrmutstropfen bleibt jedoch - da man leider Contao 3.x noch per Hand updaten muss (optional kostenpflichtig jetzt schon möglich).

Für ein Update wechseln wir in das geclonte Contao-Verzeichnis (contao-core) und halten es ebenso mit einem "git pull" up-to-date und kopieren uns die Änderungen in unsere Subdomain. Laut Aussagen soll Contao 4 komplett per Composer installiert und updatebar sein.