Ubuntu 18.04 Lamp : Step 1 : Initial Server Setup

Ubuntu 18.04 Lamp : Step 1 : Initial Server Setup
0

(Daniel Nevoigt) #1

Mit dem basic Ubuntu 18.04 Image von Hetzner kann man noch nicht so viel anfangen, somit werden wir in diesem Tutorial die Einrichtung eines voll funktionsfähigen Lamp-Stacks durchgehen.

Step 1: Basic Firewall Setup

Ubuntu 18.04 Server haben die UFW Firewall bereits installiert. Verschiedene Anwendungen können ihre Profile in UFW nach deren Installation registrieren, welche es erlauben die Anwendungen mit Namen zu managen.

Welche Anwendungen bereits registriert sind, kannst Du mit folgendem Kommando sehen:

ufw app list

Output
Available applications:
OpenSSH

Wir müssen sicher gehen das die Firewall SSH Verbindungen zulässt, so das wir uns wieder per SSH einloggen können:

ufw allow OpenSSH

Danach können wir die Firewall aktivieren:

ufw enable

Tippe “y” und danach Enter. Prüfe den Status mit:

ufw status

Output
Status: active

To | Action | From


OpenSSH | ALLOW | Anywhere
OpenSSH (v6) | ALLOW | Anywhere (v6)

Die Firewall blockt derzeit alle Verbindungen, außer SSH. Wir benötigen weitere Verbindungen, damit der Server vernünftig funktioniert. Darauf kommen wir später an den jeweiligen Stellen des Tutorials zurück.

Step 2: Apache Server installieren und Firewall updaten

Zunächst werden wir den Server auf den aktuellen Stand bringen:

apt update -y && apt upgrade -y

Jetzt Apache Server installieren:

apt-get -y install apache2

Nun können wir die neu registrierten Anwendungen in der Firewall prüfen:

ufw app list

Wir benötigen das Apache Full Profil:

ufw allow in “Apache Full”

Das kännt ihr gerne wieder mit dem Befehl ufw status prüfen. Oder aber gleich über eure IP indem ihr diese im Browser eingebt.

Step 3: MySQL installieren

Der nächste logische Schritt nun ist MySQL zu installieren:

apt-get -y install mysql-server mysql-client

Wir werden natürlich ein sicheres root Passwort vergeben und die Datenbank absichern:

mysql_secure_installation

Im folgenden promt wirst du das Validate Passord Plugin konfigurieren. Es sei bemerkt das es sicher ist dieses Plugin deaktiviert zu lassen, wenn du immer sichere Passwörter verwendest. Somit werden wir die erste Frage mit nein beantworten.

Nun gib dein neues root Passwort ein und bestätige dieses mit erneuter Eingabe.

Die nächste Frage beantworten wir mit Ja, wir brauchen keine anonymen User in unserer Datenbank :grinning:

Die nächsten 3 Fragen beantworten wir ebenfalls mit ja.

In Ubuntu Systemen mit MySQL 5.7 (und spätere Versionen) wird der MySQL root User über das auth_socket Plugin authentifiziert. Das soll höhere Sicherheit bringen, macht es jedoch komplizierter externe Programme wie phpMyAdmin den root Zugriff zu gestatten. Aus diesem Grund werden wir die Authentifizierungsmethode auf mysql_native_password abändern.

mysql

Nun noch einmal prüfen wie der root User angegeben ist:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Wenn beim root User in der Spalte Plugin wie erwartet auth_socket stehen sollte, werden wir folgenden Befehl dazu benutzen dies zu ändern. Im Bereich ‘password’ des Befehls vergebt ihr ein starkes Passwort:

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

Nun müssen wir noch folgenden Befehl ausführen, damit die Änderungen angenommen werden:

FLUSH PRIVILEGES;

Und prüfen nochmals mit dem Befehl SELECT user,authentication_string,plugin,host FROM mysql.user; ob die Änderungen in Kraft getreten sind.

Nun können wir den mysql promt mit exit verlassen und haben somit den nächsten Schritt erledigt.

Step 4: PHP installieren

Nun installieren wir PHP 7.2, nehmen noch einige Einstellungen vor und testen ob die Installation funktioniert

apt install php libapache2-mod-php php-mysql

Wir werden nun Apache so konfigurieren das dieser .php Dateien als erstes abarbeitet. Dazu folgenden Befehl eingeben:

nano /etc/apache2/mods-enabled/dir.conf

Das sollte dann so aussehen:

<IfModule mod_dir.c>
        DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Ändert es so ab das die index.php direkt an erster Stelle steht:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Mit strg+x abspeichern und Apache neu starten:

systemctl restart apache2

Nun erstellen wir eine info.php und testen ob alles funktioniert:

nano /var/www/html/info.php

Dort kopieren wir folgendes rein:

<?php phpinfo(); ?>

und speichern es wieder mit strg+x ab. Im Browser http://your_server_ip/info.php aufrufen. Wenn die bekannte phpinfo Seite erscheint, hat alles geklappt. Nun löschen wir diese Datei wieder:

rm /var/www/html/info.php

Und sind nun mit dem Initial-Lamp-Setup fertig. Der Stack hat die nötigsten Komponenten installiert um gängige Webanwendungen zu installieren. Dennoch gibt es weitere Komponenten die wir eventuell installieren sollten. Dazu folgt ein 2. Tutorial.