LEMP-Installationsskript

Hier findet ihr ein kleines Hilfeskript. Dieses muss unbedingt als root ausgeführt werden! Vorausgesetzt wird ein Linux mit installiertem apt-get. Mit diesem Skript wird zuerst das Betriebssystem aktualisiert und im Anschluss werden folgende Dinge installiert:

  • MariaDB Server und Client
  • nginx Webserver
  • PHP 7.0-FPM
  • PHP 7.0 MySQL Binds, welche die MySQL/MariaDB Funktionen zur Verbindung liefern
  • phpMyAdmin
  • openssh-server für den SCP Zugriff im Anschluss

Nach den Paketinstallationen muss man lediglich phpmyadmin konfigurieren. Hier ist es im Grunde nur wichtig, dass man den Benutzer und das Passwort angibt, sodass sich phpmyadmin mit der MySQL bzw. in diesem Fall MariaDB verbinden kann. Wer statt MariaDB lieber MySQL verwenden möchte muss lediglich die Pakete mariadb-server und mariadb-client ändern in mysql-server und mysql-client. Der Rest ist identisch.

Im Anschluss daran werden die php.ini und die www.conf automatisch angepasst und zum Schluss wird nginx für PHP und phpmyadmin konfiguriert. So ist es möglich, dass PHP-Skripte ausgeführt werden können und phpMyAdmin über die URL http://eure-ip-oder-hostname/phpmyadmin erreichbar wird.

Dieses Skript wurde am 10.01.2017 erstellt und am selben Tag mit einem Clean-Install von Ubuntu Server 16.10 getestet.

Installations-Skript

 

MySQL Remote Access einrichten

Damit man außerhalb auf eine MySQL-Datenbank zugreifen kann und das ohne phpMyAdmin kann man Software für Windows, Mac oder Linux verwenden. Jeder Datenbankhersteller bietet sein eigenes Tool an, so ist dies bei MySQL zum Beispiel über die MySQL Workbench möglich. Eine Drittanbietersoftware wäre Navicat in diversen Versionen für unterschiedliche Datenbank oder dem “Premium”, die alle unter einem Dach vereint. Navicat ist allerdings nicht kostenlos erhältlich.

Diese Anleitung bezieht sich auf eine MySQL-Datenbank auf einem Debian Linux.

Schritt 1: Privilege setzen

Die Privilegien setzen. Dazu müssen wir einen SQL-Befehl via Konsole oder phpMyAdmin absetzen. Dieser lautet:

Man sollte dies allerdings nicht auf dem root-User anwenden.

  • database.* bedeutet auf alle Tabellen in der Datenbank database. Ein *.* ist ebenfalls möglich.
  • user ist der Benutzer auf den diese Rechte angewendet werden.
  • % ist der Bereich, die Domain, IP. %.domain.com oder 192.168.0.% sind möglich, % bedeutet, egal woher.
  • newpassword ist das Passwort des Benutzers user.

Schritt 2: IP-Binding anpassen

Eine weitere Schutzmaßnahme kommt out-of-the-box daher. In der Datei /etc/mysql/my.cnf gibt es unter der Sektion [mysqld] den Eintrag:

Nun gibt es zwei Möglichkeiten:

  1. Diese Zeile auskommentieren mit einer # als erstes Zeichen, dass ermöglicht allen IP-Adressen den Zugriff von außerhalb.
  2. Einfach eine weitere IP-Adresse “binden”. Habt ihr keine statische IP in eurem Netzwerk ändert sich diese aber z.B. beim Neustart. Dafür kommt wirklich nur ihr auf die Datenbank.

Schritt 3: Neustart

Ggf. muss der mysql-Dienst neugestartet werden, dies passiert unter Linux mit dem Befehl:

Fertig!