1&1 cloud server unter Ubuntu 16.04.1 LTS, Teil 8, PHP und MySQL

Um unseren Apache Server produktiv einsetzen zu können, müssen wir uns noch mit ein paar Dingen beschäftigen. Für WordPress, Owncloud oder Nextcloud benötigen wir PHP und eine MySQL Datenbank. Zunächst überprüfen wir welche MySQL Version installiert ist.

Die folgende Ausgabe zeigt uns, dass die Version 5.7.15 installiert ist.

Das ist in Ordnung, diese Version werden wir benutzen.

Dann wenden wir uns jetzt PHP zu. Ubuntu 16.04.1 wird mit PHP 7.0 ausgeliefert, das ist soweit gut. Ich möchte jedoch flexibel sein und gegebenenfalls auch noch PHP 5.6 verwenden können. Deshalb nutze ich ein Personal Package Archive (PPA) von Ondřej Surý auf Launchpad als Paketquelle. In seinem PHP PPA stellt Ondřej Surý die PHP Versionen 5.5, 5.6, 7.0 und 7.1 zur Verfügung. Ausserdem werden wir auch unseren Apache Server von Ondřejs Apache2 PPA aktualisieren.

Zunächst fügen wir die beiden PPAs als Paktequellen hinzu. Hierzu installieren wir als erstes das Paket software-properties-common.

Danach können wir die beiden PPAs als Paketquellen hinzufügen.

Anschliessend müssen wir die Paketquellen aktualisieren.

Das folgende Kommado zeigt uns die Pakete, die wir aktualisieren können.

Hier die Pakete wie sie im Moment angeboten werden.

Diese Pakete wollen wir nun upgraden.

Dabei werden noch drei weitere Pakete installiert. Die vollständige Ausgabe der Installation im folgenden Listing.

Zuletzt wollen wir noch phpMyAdmin installieren. Auch dafür nutzen wir ein PPA auf Launchpad. In diesem Falle das phpMyAdmin PPA von
Michal Čihař.

Während der Installation wird ein Dialog zur Konfiguration von phpMyAdmin angezeigt. Als erstes ist der Webserver auszuwählen, der für phpMyAdmin zu konfigurieren ist. In unserem Falle ist das der Apache2 Webserver.

phpMyAdmin, configure Webserver
phpMyAdmin, configure Webserver

Danach werden wir gefragt, ob die phpmyadmin Database angelegt werden soll. Wir bestätigen mit „Yes“.

configure phpmyadmin database
phpMyAdmin, configure phpmyadmin database

Dann werden wir noch nach einem Passwort für den phpmyadmin Database Benutzer gefragt. Wir können ein zufälliges Passwort zuweisen lassen oder selbst eines angeben. Ich habe ein selbstgeneriertes Passwort angegeben.

phpMyAdmin, phpmyadmin Passwort
phpMyAdmin, phpmyadmin Passwort

Zuletzt müssen wir das Passwort noch bestätigen.

phpMyAdmin Passwortbestätigung
phpMyAdmin, phpmyadmin Passwortbestätigung

Damit ist phpMyAdmin installiert und aktiviert.

Den Zugriff auf die phpMyAdmin Seite möchte ich ebenfalls auf den Zugriff von meinem Administrationshost beschränken. Die Vorgehenweise ist analog zu der im 7. Teil der Artikelserie gewählten. In die Apache Konfiguration für phpMyAdmin /etc/phpmyadmin/apache.conf fügen wir entsprechende Zugriffsbeschränkungen ein. In den ersten beiden Directory Blöcken fügen wir die folgenden Zeilen ein.

Die komplette Kopnfigurationsdatei sieht dann wir folgt aus.

Ich habe hier eine andere Konfigurationsdatei für den Adminhost gewählt als im vorherigen Teil der Artikelserie, um den Zugriff auf die phpMyAdmin Seite unabhängig steuern zu können. Momentan mache ich davon keinen Gebrauch und setzte der Einfachheit halber einen Link auf /etc/apache2/misc/my-current-admin-host.conf.

Es gibt noch eine Sache, die ich ändern möchte. In der momentanen Konfiguration ist die phpMyAdmin Seite in jedem Virtual Host aktiv. Dies ist nicht ideal. Deshalb deaktivieren wir die globale phpMyAdmin Konfiguration.

Anschliessend fügen wir eine entsprechende Include Anweisung für die phpMyAdmin Konfiguration in die Konfigurationsdatei des gewünschten Virtual Hosts ein. Hier ein Ausschnitt der Virtual Host Konfiguration.

Nachdem wir den Apache mit dem Kommando  systemctl restart apache2  neu gestartet haben, schauen wir uns unsere phpMyAdmin Seite an.

phpMyAdmin, Startseite ohne Loginmaske
phpMyAdmin, Startseite ohne Loginmaske

Wie leicht zusehen ist, fehlt die Loginmaske. Nach einer kurzen Suche ist der Grund schnell gefunden. Die Usache ist unsere Content Security Header Konfiguration in unserem Virtual Host.

phpMyAdmin benötigt eine weniger restriktive Content Security Policy.

Dies beeinträchtigt natürlich auch die Sicherheit der Konfiguration. Das Mozilla Observatory stuft unsere Konfiguration damit auf B+ zurück. Da ich phpMyAdmin nur selten benötige, dafür auch keinen eigenen Virtual Host aufsetzen möchte und phpMyAdmin bequem aktivieren oder deaktivieren möchte, wähle ich die folgende Lösung:

Im Verzeichnis /etc/apache2/misc/ legen wir zwei Dateien an.

Durch setzen eines Links auf eine der Konfigurationen, können wir dann einfach zwischen aktiviertem oder deaktiviertem phpMyAdmin hin- und herschalten. Dazu benutze ich zwei Scripts, die ich im Verzeichnis ~/bin/ ablege.

Den beiden Scripts geben wir die richtigen Permissions:

Abschliessend müssen wir noch unsere Virtual Host Konfiguration anpassen, hier der oben gezeigte Abschnitt mit den notwendigen Änderungen.

Nun können wir mit ~/bin/phpmyadmin-on.sh und ~/bin/phpmyadmin-off.sh einfach zwischen inaktivem und aktivem phpMyAdmin wechseln.

Nach einem ~/bin/phpmyadmin-on.sh schauen wir uns nun unsere phpMyAdmin Startseite erneut an.

phpMyAdmin Startseite
phpMyAdmin Startseite

Das sieht soweit gut aus.

Jetzt wollen wir noch unsere MySQL Installation absichern.

Zum Schluss testen wir die Funktion unserer phpMyAdmin Seite, in dem wir uns als phpmyadmin Datenbank Benutzer „phpmyadmin“ mit dem oben vergebenen Passwort einloggen.

phpMyAdmin, phpmyadmin Datenbank
phpMyAdmin, phpmyadmin Datenbank

Wenn wir phpMyAdmin nicht benötigen, können wir es mit ~/bin/phpmyadmin-off.sh bequem komplett deaktivieren.

Abschliessend legen wir noch ein Script zum Backup der MySQL Datenbanken an.

Mit der Variable numbackup können wir die Anzahl der zu haltenden Backups einstellen, mit der Variablen BACKUPDIR das Verzeichnis in dem die Backups erstellt werden sollen. Falls das Verzeichnis nicht existiert, wird es angelegt. Nachdem ein Backup angelegt wurde, werden die ältesten Backups gelöscht, damit nur die angegebene Anzahl an Backups verbleibt.

Für automatisierte Backups wäre dann noch ein entsprechender cron job einzurichten.

Im 9. Teil der Artikel Serie beschäftigen wir uns mit der Änderung unserer 1&1 Cloudserver Konfiguration. Bevor ich meine Blogs umziehe, möchte ich gerne zu einer größeren Konfiguration mit mehr Memory und Plattenplatz wechseln.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.