Drupal lässt sich auf unterschiedliche Art und Weise verwalten.
Zum einen komplett über die Benutzeroberfläche im Browser und zum anderen über Tools auf der Kommandozeile.
Beide Varianten haben Vor- und Nachteile.
Vereinfacht lässt sich sagen, dass einfache Drupal-Sites ohne eCommerce und individuelle Programmierung durchaus über die Benutzeroberfläche verwaltet werden können. Der grosse Vorteil ist, dass man in dieser Variante keinen Zugriff auf die Kommandozeile benötigt um „Dinge zu tun“. Jeder User kann also die Site auch verwalten und konfigurieren. Nur für ein Drupal-Versions-Update wird Zugriff auf die Dateien benötigt. Hier bei Novatrend wird diese einfache Variante von unserem Installationsmanager Softaculous verwendet. Versions-Updates erfolgen sicher über die Softaculous-Oberfläche.
Wer kompliziertere Drupal-Sites betreibt oder mehr Einfluss auf „die Dinge“ haben will oder auch schlicht „alle Möglichkeiten“ nutzen will, der wird Drupal in einer Composer-basierten Installation verwalten.
Mittlerweile ist die Composer-basierte Installation sehr einfach geworden und daher will ich heute eine Installation von Drupal mittels Composer auf einem Novatrend Hosting beschreiben.
Zu jedem Webhosting gehört ein SSH Zugang. Dieser Zugang lässt sich über einen lokalen SSH-Client nutzen. Das funktionier auch gut auf Smartphones und Tablets.
Auch ohne SSH-Client lässt sich in unserer Verwaltungsoberfläche cPanel ein Browser-basiertes Terminalfenster nutzen.
Wenn du ein Terminal aufrufst, landest du normalerweise im Document Root Verzeichnis deines Webhosting. Dort befindet sich (bei Novatrend) ein Verzeichnis public_html und in diesem Verzeichnis liegen die Dateien, die für den Webserver, eine bestimmte Domain und ein Zertifikat zugänglich sind.
Auf einem Webhosting kannst du dir mehrere Websites anlegen.
Du benötigst dazu eine zusätzliche Domain oder Subdomain, ein Zertifikat und ein Verzeichnis (Document Root). Das erste Verzeichnis für deine Standarddomain nennen wir bei Novatrend public_html, die Namen weiterer Verzeichnisse sind beliebig. Sie liegen der Übersicht halber meist auf der gleichen Ebene wie public_html. Wenn ich also eine Drupal-Site unter der Domain meindrupal.seafolly.ch anlegen möchte, so könnte ich das Verzeichnis MeinDrupal nennen.
Und nun sind wir schon mitten in der Drupal Installation mit Composer.
Wenn du eine aktuelle Version von Drupal installieren willst (momentan 9.2.8), so musst du im Root-Verzeichnis deines Webhosting einfach diesen Befehl eingeben und abschicken.
composer create-project drupal/recommended-project MeinDrupal
Du könntest auch eine andere Version von Drupal angeben (drupal/recommended-project:9.0.0-beta2), normalerweise installiert man aber die aktuelle Version.
Composer lädt alle Dateien, es huschen viele Meldungen über das Fenster und es entsteht ein neues Verzeichnis MeinDrupal.
In dieses Verzeichnis wechselst du mit dem Befehl cd MeinDrupal und mit ls -l kannst du dir den Inhalt des Verzeichnisses ansehen.
[seafoll1@srv11 ~]$ cd MeinDrupal/
[seafoll1@srv11 MeinDrupal]$ ls -l
total 180
-rw-rw-r-- 1 seafoll1 seafoll1 3133 Nov 3 18:25 composer.json
-rw-rw-r-- 1 seafoll1 seafoll1 170019 Nov 3 18:25 composer.lock
drwxrwxr-x 19 seafoll1 seafoll1 4096 Nov 5 09:14 vendor
drwxrwxr-x 7 seafoll1 seafoll1 4096 Nov 5 09:14 web
Es klingt jetzt fast ein wenig einfach, aber dass war es zunächst. Du hast den notwendigen Quellcode für Drupal auf dein Webhosting geladen. Im Verzeichnis vendor befinden sich alle Pakete und Bibliotheken, die nichts mit Drupal zu tun haben, die aber von Drupal benutzt werden. Im Verzeichnis web befindet sich … „Dein Drupal“ :). In den beiden Dateien composer.json und composer.lock stehen Informationen, die von Paketmanager Composer benötigt werden.
Du musst nun in cPanel eine Domain oder Subdomain konfigurieren und auf das Verzeichnis web zeigen lassen.
Anschliessend kannst du ein Zertifikat für diese Domain erstellen.
Wenn du nun die Domain im Browser aufrufst, erscheint der Web-Installer von Drupal. Je nachdem, wie du Drupal installieren möchtest, musst du noch eine Datenbank und einen Datenbank-User im cPanel erstellen. Für Testzwecke geht es auch ohne MySQL-Datenbank mit der SQLite Variante. Ich habe als Sprache Deutsch, als Profil Standard, als Datenbank SQLite und die Drupal-Beispieldaten Umami gewählt.
Die Composer-basierte Drupal Installation ist damit zunächst erledigt.
Um nun hilfreiche und sinnvolle Dinge tun zu können, musst du dich mit den Befehlen von Composer beschäftigen. Ein Aufruf des Befehls composer ohne Parameter erzeugt eine Ausgabe aller Argumente
[seafoll1@srv11 ~]$ composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.0.6 2020-11-07 11:21:17
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
...
weitere Argumente
...
Um ein Drupal Modul herunterzuladen benutzt du den Befehl
composer require drupal/module_name
Um das Modul Admin Toolbar (https://www.drupal.org/project/admin_toolbar) herunterzuladen, also drupal/admin_toolbar.
composer require drupal/admin_toolbar
Der Name entspricht immer dem Pfad des Moduls auf der Drupal.org Site. Das funktioniert auch mit Themes.
Wenn du nun das Modul innerhalb deiner Drupal Installation aktivieren willst, benötigst du die Drupal-Shell Drush. Composer ist für die Beschaffung der Dateien und Pakete zuständig, Drush für Drupal-spezifische Aufgaben. Zunächst musst du Drush mit dem Befehl
composer require drush/drush
installieren.
Drush wird im Vendor-Verzeichnis installiert und du kannst es mit dem Befehl vendor/bin/drush aufrufen. Auch bei Drush erscheint ohne eine Angabe von Parametern die Ausgabe aller möglichen Parameter. Mit Drush kannst du deine Drupal Site praktisch „fernsteuern“.
[seafoll1@srv11 MeinDrupal]$ vendor/bin/drush
Drush Commandline Tool 10.6.1
Run `drush help [command]` to view command-specific help. Run `drush topic` to read even more documentation.
Available commands:
_global:
browse Display a link to a given path or open link in a browser.
drupal:directory (dd) Return the filesystem path for modules/themes and other key folders.
generate (gen) Generate boilerplate code for modules/plugins/services etc.
help Display usage details for a command.
jn:get Execute a JSONAPI request.
list List available commands.
mk:docs Build a Markdown document for each Drush command thats available on a site.
runserver (rs, serve) Runs PHP's built-in http server for development.
version Show Drush version.
cache:
cache:clear (cc) Clear a specific cache, or all Drupal caches.
cache:get (cg) Fetch a cached object and display it.
cache:rebuild (cr, rebuild) Rebuild a Drupal 8 site.
Um nun das mit Composer heruntergeladene Modul Admin Toolbar zu aktivieren, benutzt du den Drush Befehl:
vendor/bin/drush pm:enable admin_toolbar
Der Parameter pm:enable kann auch mit en abgekürzt werden, also
vendor/bin/drush en admin_toolbar
Der Aufruf von Drush kann auch abgekürzt werden (siehe Drush Launcher), also
drush en admin_toolbar
Drupal Update
Drupal Updates sind ein grosses Thema und durchaus ein Grund für die ganze Composer Installation ist der Befehl
composer update
Composer sucht die aktuellsten Datei-Versionen zusammen, aktualisiert das Vendor-Verzeichnis und achtet auf Abhängigkeiten.
Das Datenbank-Update läuft dann über Drush mit dem Befehl
drush updatdb
Wenn eine Site sauber aufgebaut, gepflegt und regelmässig aktualisiert wird, ist ein Drupal Update mit Composer und Drush eine Sache von Sekunden, denn alles läuft automatisiert ab.
Wenn eine Site dagegen nicht so sauber aufgebaut, gepflegt und regelmässig aktualisiert wird, ist die ganze Automatisierung wenig wert. Im Einzelfall muss dann geprüft werden, ob alles zusammenpasst und oft muss dann viel „gebastelt“ werden.
Composer und Drush beschleunigen die Arbeit durch Automatisierung.
Fazit
Composer und Drush ermöglichen die Professionalisierung einer Drupal-Installation in arbeitsteiligen Umgebungen. Web-Agenturen können auf diese Art viel Zeit sparen und die Aufgaben auf viele Personen verteilen. Die Kommandozeilen-Tools ermöglichen auch ein automatisches Ausrollen und Aktualisieren von Drupal-Sites.
Wer „mehr“ mit der eigenen Drupal-Site „machen“ möchte, sollte zu dieser Installationsvariante greifen. Wer dagegen „nur“ eine Drupal-Website betreibt, also den jeweils aktuellen Drupal-Core, ein angepasstes Theme, ein paar Contrib Module und ein paar tausend Inhalte in mehreren Sprachen, kann durchaus die einfache Installation via Softaculous und anderen Installern verwenden.
Es besteht auch jederzeit die Möglichkeit von einer einfachen Installation auf eine Composer-basierte Installation zu wechseln.
Schreibe einen Kommentar