.

Um den LEMP Stack zum Leben erwachen zu lassen benötigen wir als erstes die drei grundlegenden Softwarebausteine: Webserver, Datenbankserver und PHP. Deren Installation ist der nächste Schritt. Wie schon im „Auftakt“ erwähnt habe ich mich aus Performance gründen zum Webserver Nginx und für MariaDB als Datenbank entschieden.

Inhalt

Installation Nginx
Installation MariaDB
Installation PHP 7.3

Vorausetzung

- Systemzugriff als root oder Benutzer mit sudo Privilegien.

Installation Nginx

Erst müssen ein paar Voraussetzungen geschaffen werden. Dazu werden ein paar kleine Tools installiert falls sie noch nicht vorhanden sind:

apt install curl gnupg2 ca-certificates lsb-release

Debian hat den Ruf ein sehr stabiles System zu sein. Da aber einige Pakete bereits veraltet sind bevor sie bei Debian den Status ’stable‘ bekommen, so auch bei Nginx, wollen wir die ‚mainline‘ von Nginx installieren. Dazu müssen wir das mainline Nginx Paket zu unserem Repository hinzufügen, so dass, wenn wir ‚apt install nginx‚ ausführen, die mainline Version anstelle der alten stabilen Version installiert wird.

echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list

OPTIONAL: Wenn man doch aus irgend einem Grund später wieder zurück zur stable Version möchte. Kann man den Repository Eintrag mit dem folgenden Befehl wieder ändern um mittels ‚apt install nginx‚ die stable Version zu installieren (Natürlich sollte die mainline Version vorher deinstalliert werden).

echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list

Es ist sinnvoll mittels Signaturschlüssel die Authentizität eines Repository Eintrag zu prüfen. Der download des Schlüssel und die Prüfung lassen sich in einem Einzeiler erledigen.

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Steht in der darauf folgenden Ausgabe „OK!“ ist alles schick.

Nun können wir Nginx endlich installieren, nach dem wir dem Repository Inhalt aktualisiert haben.

sudo apt update
sudo apt install nginx

Das war schon fast der erste Streich. Den Webserver starten wir mit:

systemctl start nginx.service

Nginx soll beim booten mit gestartet werden. Dazu muss Nginx auf ‚enabled‘ gesetzt werden.

systemctl enable nginx.service

Rufen wir nun im Browser die IP Adresse unseres Server auf. Erscheint der „Welcome to nginx!“ in unserem Browser haben wir alles richtig gemacht.

Installation MariaDB

Die Installation von MariaDB ist schnell erledigt.

apt install mariadb-server mariadb-client

Während der Installation wird MariaDB für gewöhnlich in den Autostart eingetragen und nach der Fertigstellung auch automatisch gestartet. Eine kurze Kontrolle empfiehlt sich trotzdem.

systemctl status mariadb

Wenn wir nun in der dritten oder vierten Zeile den Eintrag „Active: active (running) … “ finden, ist alles so wie es sein soll.

Letzter Schritt: die Installation absichern.

mysql_secure_installation

Da bis jetzt noch kein Root-Passwort für die Datenbank festgelegt wurde können wir bei der Frage nach dem Passwort einfach ‚Enter‚ drücken.

Die anschließenden fünf Fragen können wir alle mit ‚yes (Y)‘ beantworten.

  • Set root password? [Y/n] – ‚yund ‚Enter‚.
    • Sicheres root Passwort für die neue Datenbank erstellen!
  • Remove anonymous users? [Y/n] – ‚yund ‚Enter‚.
  • Disallow root login remotely? [Y/n] yund ‚Enter‚.
  • Remove test database and access to it? [Y/n] yund ‚Enter‚.
  • Reload privilege tables now? [Y/n] yund ‚Enter‚.

Die Ausgabe bestätigt uns, dass die MariaDB Installation nun sicher ist.

Installation PHP 7.4

Auch hier benötigen wir eine Erweiterung unserer Repository Einträge. Diese erreichen wir diesmal durch:

sudo apt install apt-transport-https lsb-release ca-certificates curl
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg 
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Und nochmal zum aktualisieren:

apt update

Startklar für die Installation! Nachdem das Basispaket ‚php7.4-fpm‚ installiert ist werden wir gleich einige Erweiterungen hinzufügen die langfristig auf jedem Webserver Sinn machen.

apt install php7.4-fpm
apt install php7.4-{common,mysql,xml,xmlrpc,curl,gd,imagick,cli,dev,imap,mbstring,opcache,soap,zip,intl,bcmath}

Es ist empfehlenswert das Speicherlimit für PHP an zu heben um die Performance zu steigern. Jedoch sollte dies nur geschehen wenn auf dem Server genug Arbeitsspeicher zur Verfügung steht. Bei einem Server mit nur 512MB RAM ist es nicht unbedingt sinnvoll das Speicherlimit von PHP auf 256MB an zu heben. Daher habe ich es nur auf 192MB angehoben. In die Config Datei von PHP gelangen wir mit:

nano /etc/php/7.4/fpm/php.ini

Dort drücken wir ‚strg + w‚ um die Suche zu starten und geben ‚memory_limit‚ ein. Der default wert ist 128. Diesen verdoppeln wir auf 256.

memory_limit = 256

’strg + o‘ und ‚Enter‘ zum speichern. Um dann mit ’strg + x‘ nano wieder zu verlassen.

Das war es schon! Der LEMP Stack ist nun vollständig auf dem Server installiert. In den weiteren Teilen dieser Serie erfahrt ihr dann wie man Nginx grundlegend einrichtet damit verschiedene Domains in unterschiedliche Ordner des Servers weitergeleitet werden. Und wie ich phpmyadmin installiert habe um meine Datenbanken zu verwalten.


0 Kommentare

Schreibe einen Kommentar

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