Wenn man mit einer nicht ganz aktuellen Drupal-Version zufrieden ist, die vom Linux-Distributor aktualisiert wird, dann installiert man klugerweise Drupal aus dem Repository seines Linux-Anbieters.
apt-get install drupal7
Für alle anderen, die immer das neueste Modell haben wollen und das Abenteuer lieben, ist hier eine Beschreibung, wie man die aktuellste Version direkt aus dem Internet installiert.
Grundinstallation der LAMP-Komponenten
apt-get update
apt-get install apache2 libapache2-mod-php php-xml php-gd libphp-adodb
a2enmod rewrite
systemctl restart apache2
Drupal legt großen Wert auf das Modul rewrite.
Clean URLs
Auch die Clean URLs werden später wichtig. Während des Installationsprozess wird lediglich eine Warnung ausgegeben, wenn Clean URLs nicht gesetzt werden. Allerdings führt ein Ignorieren dazu, dass nur die Hauptseite funktioniert und jedes Anlicken irgendeines Links sofort zu einem Fehler 404 - Seite nicht gefunden führt.Die hier ausgeführte Anpassung basiert auf einem AllowOverride für das Drupal-Verzeichnis. Das ist möglich, wenn Drupal auf einem System läuft, dass frei konfiguriert werden kann.
Auf meinem System läuft Drupal als einziges System. Hier wurde die Änderung in der einzigen Site eingetragen, die enabled ist.
vi /etc/apache2/sites-enabled/000-default.confIn dieser Datei wird ein spezieller Eintrag für das Verzeichnis drupal eingefügt, der AllowOverride für alle erlaubt. Das Folgen eines symbolischen Links wurde daraufhin auch genehmigt.
<VirtualHost *:80> # ... <Directory /var/www/html/drupal> Options FollowSymLinks AllowOverride All </Directory> </VirtualHost>Auch nach dieser Änderung empfielt sich der Neustart des Apachen.
systemctl restart apache2
Vorbereitung der Datenbank
Für Drupal muss eine Datenbank eingerichtet werden. Dazu wird die Datenbank MySQL bzw. ihr Nachfolger MariaDB eingerichtet.apt-get install mariadb-serverAnschließend wird für Drupal eine eigene Datenbank und ein Datenbankbenutzer angelegt. Hier wird als Beispiel die Datenbank drupaldb für den Benutzer drupaluser mit dem Passwort geheim angelegt:
mysql -u root -p (Passwort eingeben) create user drupaluser identified by 'geheim'; create database drupaldb; grant all on drupaldb.* to drupaluser; select user,host,password from mysql.user; exit
Download und Einrichtung von Drupal
Auf der Download-Seite von Drupal wird das Drupal-Paket wird als tar.gz angeboten. Dieses wird heruntergeladen und landet beispielsweise im Download-Verzeichnis des Benutzers linux. Als root wird das Paket im Datenverzeichnis des Apache entpackt.cd /var/www/html tar xfz /home/linux/Download/drupal-x.yy.tar.gz mv drupal-x.yy drupal chown -R :www-data drupalDie Settings werden aus den Defaults erstellt. Werden diese später gelöscht und eine frische Datenbank aufgesetzt, kann die Installation wiederholt werden.
cd drupal/sites/default chmod 777 . cp default.settings.php settings.php cp default.services.yml services.yml chmod 664 settings.php services.yml chown :www-data se*
Weitere Installation per Browser
systemctl restart apache2Dann wird auf dem lokalen Rechner ein Browser eröffnet und als Adresszeile wird localhost/drupal eingegeben.
Daraufhin startet die Installation mit folgendem Dialog:
- Choose language
Wird hier Deutsch gewählt, lädt Drupal die Übersetzung aus dem Internet. - Choose profile
- Verify requirements: Hier wird überprüft, ob alles korrekt installiert ist. Gegebenenfalls mahnt Drupal Einstellungen und Voraussetzungen an, die parallel geändert werden können.
- Set up database: Hier werden Datenbankname, Benutzer und Passwort eingegeben, wie sie beim Einrichten der MySQL-Drupal-Datenbank angegeben wurden.
- Der Host und die E-Mail-Adresse wird angegeben.
- Als Maintenance Accout wird der Administrationszugang zu Drupal festgelegt.
Nacharbeiten
Es werden noch Installationsfehler gemeldet, die für die Installation freigeschaltete Rechte betrifft:- sites/default muss auf nicht schreibbar gesetzt werden.
- sites/default/settings.php und service.php müssen als nicht schreibbar angepasst werden.
cd /var/www/html/drupal cd sites/default chmod 444 se* chmod 755 .
Drupal per Browser verwalten
Die Installation kann man prüfen, indem man auf dem lokalen PC die Adresse localhost/Drupal aufruft. Von einem anderen PC aus, kann man localhost durch den Namen oder die IP-Adresse des Hosts ersetzen.Nach der Anmeldung als admin mit dem bei der Installation vergebenen Passwort ergibt sich folgendes Bild, wenn der Menüpunkt Verwalten aktiv ist:
Verwalten - Erweitern
Unter Extend stehen mehrere Erweiterungen zur Verfügung. Viele sind angewählt. Beispielsweise kann ein Forum, Syslog oder Statisitiken freigeschaltet werden.Hier wurde der Update Manager angeklickt und unten der Button Installieren angeklickt.
Über die Statusberichte meldet das System, dass es eine neue Version 8.4.4 gibt. Ein Update ist direkt aber nicht möglich.
Inhalt hinzufügen
Auf der linken Seite findet man unter Werkzeuge den Punkt Inhalt hinzufügen. Darunter die Wahl zwischen Artikel und Einfache Seite. Wir wählen die einfache Seite und erhalten ein Eingabeseite mit Titel und Textkörper.
- Der Titel ist verpflichtend.
- Im Textkörper kann WYSIWYG eingegeben werden.
- Mit der Vorschau kann das Ergebnis betrachtet werden.
- Unter URL-ALIAS-EINSTELLUNGEN wird eingegeben, wo sich die Seite befindet, z. Bsp: /install. Dann wird sie unter localhost/drupal/install angesprochen. Solange man als Besitzer eingetragen ist, erhält man die Möglichkeit, die Seite zu bearbeiten.
- Mit Speichern und Veröffentlichen wird die Seite gespeichert.
Benutzer anlegen
Als admin anlegen. Dort aus der Menüleiste Benutzer auswählen. Dort auf den Button Benutzer hinzufügen klicken. Benutzer erhält folgende Informationen:- E-Mail-Adresse (optional)
- Benutzername
- Passwort und Passwortbestätigung
- Status: Aktiv oder Gesperrt
- Rolle: Angemeldeter Benutzer oder Administrator
- Bild
- Sprache
- Zeitzone>
Backup
Das Backup von Drupal besteht einerseits aus dem Datenbankinhalt sowie dem Inhalt in den Dateien /var/www/html/drupal/site (oder wo immer die Drupal-Dateien hingelegt wurden).Als Datensicherungsverzeichnis wird hier /var/backup verwendet. Dieses Verzeichnis könnte man per automount auf ein NAS oder einen anderen Server legen.
mkdir /var/backup
Datenbanksicherung
Wenn der Befehl drush zur Verfügung steht, kann die Datenbank darüber gesichert werden. Das hat den Charme, dass es datenbankunabhängig funktioniert und keine Passwörter hinterlegt werden müssen.drush sql-dump > /var/backup/drupaldb20180222.sqlSteht drush nicht zur Verfügung, muss man den Dump-Befehl der Datenbank verwenden. MySQL (bzw. MariaDB) verwenden den Aufruf mysqldump, um den Datenbankinhalt in eine SQL-Kommandodatei zu schreiben.
mysqldump -u drupaluser -pgeheim drupaldb > /var/backup/drupaldb20180222.sqlEs ist allerdings nie eine gute Idee, ein Passwort in einem Kommando im Klartext abzugeben, weil ein einfaches ps jedem Anwender der Maschine die Kommandozeile komplett anzeigen kann und damit auch das Passwort.
Besser ist es darum, auf -p ein Leerzeichen folgen zu lassen, dann fordert der Befehl das Passwort von der Konsole an.
Dateisicherung
Alle Dateien unter dem Verzeichnis sites gehören ebenfalls zum Sicherungsumfang. Das kann auf drei Versionen erfolgen:- cp -rp: Damit werden Dateien einfach kopiert. Die Rechte bleiben erhalten.
- rsync: Damit können die Dateien über das Netzwerk übertragen werden. Es werden auch nur Dateien kopiert, die sich seit der letzten Sicherung verändert haben.
- tar: Die Sicherung erfolgt in eine Datei. Das ist etwas einfacher zu handhaben als ein Verzeichnis. tar kann auch über das Netzwerk sichern, optimiert aber nicht die bereits gesicherten Dateien weg.
cd /var/www/html/drupal tar czf /var/backup/drupal20180222.tgz /var/www/html/drupal/sites
Rücksicherung
Zur Rücksicherung muss zunächst die Datenbank restauriert werden. Dazu wird die SQL-Datei als Batch-Datei durch das Datenbanksystem ausgeführt. Alle erforderlichen Befehle stehen darin. Allerdings muss die Datenbank drupaldb und der Benutzer drupaluser zuvor angelegt worden sein.
mariadb -u drupaluser -p drupaldb < /var/backup/drupaldb20180222.sqlEs wird um die Eingabe des Passworts gebeten.
Anschließend muss die Sites-Datei wiederhergestellt werden:
cd /var/www/html/drupal tar xzf /var/backup/drupal20180222.tgz
Weitere Informationen: Sicherung der Drupal-Datenbank
Update
Als Update wird ein Wechsel zur nächsten Minor-Version genannt, also beispielsweise von 8.3 zu 8.4. Ein Wechsel von 8.x zu 9.x wird als Upgrade bezeichnet.
Die Beschreibungen für einen Drupal-Update sind gefühlte zwei Tonnen schwer. Leider setzen sie die Tools drush und composer voraus, die in Debian nicht und in Ubuntu nur in einer veralteten Version vorliegen. Hinzu kommt, dass nicht alles, was im Internet steht, auch wirklich funktioniert.
Drupal hat durchaus heftige Sicherheitslücken aufgewiesen. Um so bedauerlicher ist es, dass der Update von Drupal derart umständlich ist.
Installation von drush
Für den Update wird das PHP-Programm drush verwendet. Das ist unter Debian 8/9 nicht vorhanden und liegt unter Ubuntu nur in einer alten Version 5 vor. Also wird die aktuelle Version von github geholt.
- Unter der URL https://github.com/drush-ops/drush/releases befindet sich das Paket drush.phar. Dieses wird heruntergeladen.
- cd ~/Downloads
- php drush.phar core-status
Testet, ob das Paket brauchbar ist. - chmod +x drush.phar
- sudo mv drush.phar /usr/local/bin/drush
Schiebt das Programm an eine im PATH liegende Stelle unter dem Namen drush.
http://docs.drush.org/en/8.x/install
Installation von composer
- apt-get update
- apt-get install curl php5-cli git
Installiere notwendige Programme, insbesondere das Programm git. - php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"
Hole die Installationsumgebung und schiebe sie nach /tmp - php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
Starte die Installation und schiebe composer nach /usr/local/bin - composer --version
Prüfe, ob ein ausführbarer composer vorliegt - rm /tmp/composer-setup.php
Beseitige die Installationsreste
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-debian-8
Update Drupal
Für den Update wird später das PHP-Paket mbstring benötigt. Der folgende Befehl installiert es.
apt-get install php-mbstring
In das Verzeichnis /var/www/html/drupal wechseln und den folgenden Befehl eingeben:
composer update drupalDer Befehl wertet die dort liegende Datei composer.json aus, lädt Dateien herunter und aktualisiert sie. Trotz allen Fleißes wird der Update aber nicht durchgeführt, wie localhost/drupal/admin/reports/updates/update belegt. Dort wird immer noch beklagt, dass die installierte Version die alte ist.
Im nächsten Versuch habe ich den folgenden Weg verwendet:
composer require drupal/core drush/drushDie Idee kam mir, nachdem ich den Update, wie er auf der Website Hilfestellung beschrieben wird, nicht gelingen wollte. Der dort vorgeschlagene Befehl
composer update "drupal/core" "drush/drush"führte nicht zu einem Update. Da auch show nicht funktionierte, versuchte ich es schließlich mit require.
Nun installierte und aktualisierte der composer und schließlich stand eine Drupal-Version zur Verfügung, mit der auch die Berichte im admin-Umfeld zufrieden waren. Drush wurde auf die Version 9.1.0 hochgezogen.