Contao Erweiterungen per Konsole installieren
- 4.4
- 4.9
- 4.13
- 5.3
- 5.7
1) Voraussetzungen
SSH-Zugang
Um Erweiterungen über die Konsole zu installieren, benötigst du einen SSH-Zugang zu deinem Server. Die meisten Hoster bieten mittlerweile einen solchen Zugang an. Möglicherweise musst du dafür ein Add-On erwerben oder zu einem höheren Tarif wechseln.
In einigen Fällen muss der SSH-Zugang zuerst freigeschaltet werden. Überprüfe dafür die Einstellungen im Control Panel deines Hosters.
Außerdem benötigst du die entsprechenden Zugangsdaten. Diese setzen sich aus dem Servernamen, dem Benutzernamen, dem Passwort und dem Port zusammen, wenn dieser vom Standardport 22 abweicht.
SSH-Client-Software
Je nach Betriebssystem gibt es unterschiedliche Software. Suche am besten bei deiner Suchmaschine des Vertrauens nach SSH Client.
Ich kann dir folgende Tools empfehlen:
2) Verbindung zum Server herstellen
Im Folgenden zeige ich dir exemplarisch einmal PuTTY und einmal direkt über iTerm2.
Um eine Verbindung herzustellen, musst du deinen Hostnamen oder IP eingeben und auf Open klicken. Anschließend werden der Benutzername und das Passwort abgefragt.
Bei der 1. Verbindung zu einem neuen Host musst du den SSH-Key des Servers akzeptieren.
Um dich mit dem Server per SSH zu verbinden, öffnest du das Terminal oder iTerm2 und gibst folgenden Befehl ein:
ssh benutzername@servername
Anschließend wirst du nach dem Passwort gefragt.
Wenn dies die erste Verbindung zu diesem Host ist, musst du den SSH-Schlüssel des Servers akzeptieren, indem du yes eingibst.
3) Composer prüfen bzw. installieren
3.1 Ist auf dem Server Composer bereits installiert?
Nachdem die Verbindung zum Server erfolgreich hergestellt ist, kannst du prüfen, ob Composer bereits auf dem Server installiert ist.
composer -V
Wenn Composer installiert ist, erhältst du eine Ausgabe, die ähnlich wie in folgendem Screenshot aussieht.
Ein häufiges Problem ist, dass Composer nicht mit der korrekten PHP-Version ausgeführt wird. Die PHP-Version muss mit der PHP-Version deines Webservers übereinstimmen, auf dem Contao läuft. Daher solltest du zunächst den Pfad von Composer herausfinden. Verwende dazu:
which composer
Danach kannst du die korrekte PHP-Version angeben und den absoluten Pfad für Composer verwenden. Für PHP 8.3 könnte das so aussehen:
php83 /usr/bin/composer -V
Wenn Composer bisher nicht auf deinem Server vorhanden ist oder du sicherstellen möchtest, dass du die aktuellste Composer-Version nutzt, empfehle ich dir, Composer herunterzuladen. Wie das funktioniert, erkläre ich dir im nächsten Punkt.
3.2 Composer installieren
Es gibt mehrere Möglichkeiten, Composer zu installieren. Du kannst ihn global auf dem Server installieren oder nur die ausführbare Datei in deine Contao-Installation laden. Weitere Informationen findest du unter: https://getcomposer.org/download/
Bei einem Shared-Hosting kannst du in der Regel keine Software in den geschützten Systempfaden installieren. Daher laden wir die ausführbare Version von Composer manuell herunter.
Composer herunterladen
Im ersten Schritt wechseln wir in unser Contao-Verzeichnis. Als Hilfestellung kannst du im Hosting Control Panel nachsehen, wo sich der Document Root deiner Installation befindet.
Mit dem Befehl cd [Verzeichnisname] kannst du in ein Verzeichnis wechseln. Mit dem Befehl ls kannst du dir die Verzeichnisse anzeigen lassen. Mit pwd erfährst du, wo du dich gerade befindest.
Beispiel: cd public/cto_53/
Nun können wir Composer herunterladen:
wget https://getcomposer.org/download/latest-stable/composer.phar
Composer testen
Zum Schluss überprüfen wir, ob Composer korrekt funktioniert:
php composer.phar -V
Wenn nicht die passende PHP-Version ausgeführt wird, musst du möglicherweise eine andere PHP-Binary verwenden. Häufig wird dazu nur die Version angehängt. Je nach Hoster sieht das dann zum Beispiel so aus:
php83 composer.phar -V
php8.3 composer.phar -V
Wenn alles geklappt hat, sind wir bereit und können Composer nutzen.
4) Pakete / Erweiterungen suchen
Wenn du bereits den Paketnamen der Erweiterung kennst, kannst du direkt mit der Installation beginnen. Ansonsten kannst du die Erweiterung über extensions.contao.org suchen, auf „Details“ klicken und den Namen kopieren.
Wenn wir die Erweiterung Notification Center installieren möchten, lautet der Paketname terminal42/notification_center.
Du kannst auch direkt mit Composer nach Paketen suchen. Dafür verwendest du den Befehl:
composer search
Beispiel für Notification Center:
composer search notification center
php83 composer.phar search notification center
Es werden nun alle passenden Pakete ausgegeben. Beachte, dass auch Composer-Pakete angezeigt werden, die keine Contao-Erweiterungen sind.
5) Pakete per Composer installieren
Wenn du nun den Paketnamen kennst, kannst du mit der Installation beginnen.
Der Befehl dazu lautet:
composer require vendor/paketname
Beispiel für Notification Center:
composer require terminal42/notification_center
php83 composer.phar require terminal42/notification_center
Nun führt Composer die Installation durch.
6) Datenbankmigration ausführen
Nach der erfolgreichen Installation der Pakete musst du oft noch die nötigen Datenbankänderungen durchführen. Dafür kannst du den folgenden Befehl ausführen:
php83 vendor/bin/contao-console contao:migrate
Nun sollte die Erweiterung installiert sein und in Contao verwendet werden.
Weitere Composer-Befehle
Mit Composer kannst du natürlich auch Pakete entfernen, Updates durchführen und viele weitere Informationen erhalten. Hier eine kleine Auswahl:
Pakete entfernen
Um ein Paket zu entfernen, verwendest du den Befehl:composer remove paketname
Alle Pakete aktualisieren
Um alle Pakete zu aktualisieren, gib diesen Befehl ein:composer update
Alle installierten Pakete anzeigen
Um dir eine Übersicht über alle installierten Pakete anzusehen, führe folgenden Befehl aus:composer show
Möchtest du über neue Artikel informiert werden?
Dann trage hier deine E-Mailadresse ein und klicke auf „Abonnieren". Du erhältst regelmäßig aktuelle Infos über Contao und die Contao-Academy.
Über den Autor
Christian Feneberg ist der Initiator und Dozent der Contao Academy. Er bringt über 15 Jahre Praxiswissen in der professionellen Umsetzung von Contao-Websites mit. Zudem ist er Teil des Teams von trakked.io. Er liebt es, sich neues Wissen anzueignen und es weiterzugeben. Abseits des Bildschirms verbringt er am liebsten Zeit mit seiner Familie und in der Natur.
Folge Christian jetzt bei LinkedIn.
Einen Kommentar schreiben