HOW TO: LEMP Server auf Linux installieren

  • WICHTIG: Diese Anleitung wurde von meinem alten Linux Blog kopiert, von welchen ich alle Artikel bis auf die Anleitungen gelöscht habe. LINK
    Sollte eine LAMP Anleitung gewünscht werden werde ich sie selbstverständlich nachreichen. Viel Spaß!

    LEMP Server – Eine Alternative zu LAMP

    Ein LAMP Server (Linux Apache2 Mysql PHP) Server ist oft bereits bekannt, doch gibt es auch Alternativen, die sowohl Vorteile als auch Nachteile haben. Je nach Usecase kann es aber durchaus effizienter sein, eine Alternative zu nutzen. In diesem Artikel wird die Installation eines LEMP Servers (Linux nginX MariaDB PHP) erläutert. NginX wird ‘Engine X’ ausgesprochen, daher das E.

    In diesem Artikel zeige ich dir Schritt für Schritt wie du LEMP auf deinem Ubuntu Server installierst. Am Ende Installiere ich noch PHPMYADMIN auf dem LEMP. Dies ist ein guter Test für die Funktionsweise deines LEMPs.

    Server vorbereiten

    Mit folgendem Befehl kann der Server auf den neuesten Stand gebracht werden. Die Installation von Updates ist nicht nur für die Sicherheit und Stabilität wichtig, manche Installationen funktionieren nicht ohne die aktuelle Paketliste – beispielsweise bei neu hinterlegten Repositorys. APT, der Paketmanager unter auf Debian basierenden Distributionen, übernimmt den Großteil der Arbeit. Der folgenden Befehl startet den Vorgang:


    Code
    apt -y update && apt -y upgrade && apt -y dist-upgrade


    Nach Abschluss des Vorgangs ist der Server auf dem neuesten Stand. Um aus dem Ubuntu Server jetzt einen LEMP Server zu machen, werden die einzelnen Elemente nach und nach installiert. Es ist empfehlenswert, mit NginX anzufangen.

    NginX installieren

    NginX lässt sich seit Ubuntu 14.04 LTS auch über APT installieren. Folgender Befehl muss ausgeführt werden, um NginX auf deinem Server zu installieren:

    Code
    apt -y install nginx

    Anschließend müssen noch ein Paar Zeilen in der Config angepasst werden. Um die Config zu bearbeiten, kann Nano (oder auch einen anderer Texteditor) genutzt werden:

    Code
    nano /etc/nginx/sites-available/default

    Die entsprechenden Zeilen müssen wie hier gezeigt abgeändert werden:

    Code
    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    # # # With php7-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php7-fpm:
    fastcgi_pass unix:/var/run/php7-0-fpm.sock;
    include fastcgi.conf;
    }

    Anschließend kann Nano wieder beendet werden, nachdem die Änderungen abgespeichert wurden. Als Nächstes wird MariaDB installiert.

    MariaDB installieren

    MariaDB ist eine Alternative zu MySQL. Sie versteht die gleichen Befehle wie MySQL und ist daher mit allen Anwendungen, die MySQL unterstützen, kompatibel. Natürlich ist MariaDB keine exakte Kopie, daher gibt es auch ein Paar Unterschiede in der Konfiguration. Aber dazu später mehr. Zuerst muss MariaDB mit Hilfe von APT auf deinem Server installiert werden:

    Code
    apt -y install mariadb-server mariadb-client

    Ein großer Unterschied zu MySQL ist die Authentifizierung. Wie bei der Installation eventuell aufgefallen sein mag, wollte MariaDB kein Passwort für den root Account haben. Dieses lässt sich nachträglich setzen, ist für den grundsätzlichen Betrieb von MariaDB aber nicht nötig. Die Authentifizierung findet auf Basis des Linux Users statt. Ist man also als root verbunden oder verwendet sudo, kannst auf den Server zugegriffen werden. Wie dieses Verhalten umgangen werden kann, wird etwas später gezeigt. Zuerst müssen noch einige Programme installiert und konfiguriert werden. Jetzt wird PHP auf dem Server installiert.

    PHP installieren

    Wie auch MariaDB und NginX lässt sich PHP ganz einfach über APT installieren. Allerdings werden für die erfolgreiche Zusammenarbeit aller Komponenten zwei zusätzliche Erweiterungen benötigt. Mit folgendem Befehl kann alles, was benötigt wird um PHP auf deinem Server zu betreiben, installiert werden.

    Code
    apt -y install php php-fpm php-mysql

    PHP ist damit fertig eingerichtet.

    PHPmyAdmin installieren

    Wie eingangs angekündigt kann PHPmyAdmin installiert werden um die Installation am Ende zu testen. Da die Installation von PHPmyAdmin erkennt, dass MariaDB genutzt wird und daher kein Passwort abfragt, muss die Installation allerdings vor der Absicherung von MariaDB stattfinden. Im Umkehrschluss bedeutet das, wenn PHPmyAdmin später installiert werden soll, dass die Absicherung von MariaDB (siehe nächstes Kapitel) wieder rückgängig gemacht werden muss.

    Aber eins nach dem anderen. Mit folgendem Befehl kann PHPmyAdmin über APT auf dem Server installiert werden:

    Code
    apt -y install phpmyadmin

    Damit PHPmyAdmin unter http:///phpmyadmin verfügbar ist, muss noch ein Link zum richtigen Verzeichnis erstellt werden. Dazu dient folgender Befehl:

    Code
    ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

    Damit phpMyAdmin auch unter /phpmyadmin erreichbar ist, musst der nginx config etwas hinzugefügt werden:

    Code
    nano /etc/nginx/sites-available/default

    Dem server { … } Block folgendes hinzufügen:

    Code
    location /phpmyadmin {
    index index.php;
    }

    Anschließend kann Nano beendet werden, nachdem die Änderung abgespeichert wurden.

    Anschließend muss NGinX neu gestartet werden, um die Installation abzuschließen:

    Code
    service nginx restart

    War die Installation erfolgreich, sollte jetzt das Loginfenster von PHPmyAdmin unter http://<IPoderDomain>/phpmyadmin sichtbar sein. Da noch kein Passwort für MariaDB festgelegt wurde, ist ein Login allerdings noch nicht möglich.

    Jetzt kann MariaDB und der Rest des Servers abgesichert werden.

    MariaDB absichern

    Zuerst muss man sich als root User auf der eigenen MariaDB Instanz einloggen:

    Code
    mysql -u root

    Anschließend sollten folgende Befehle in dieser Reihenfolge ausgeführt werden um MariaDB abzusichern. Es ist darauf zu achten, anstelle von “NEUESPASSWORT” ein eigenes Passwort einzugeben:

    Code
    use mysql;
    update user set password=PASSWORD("NEUESPASSWORT") where User='root';
    update mysql.user set plugin='' where user='root';
    flush privileges;
    exit;

    Anschließend sollte ein erneuter Login mit dem oben genannten Befehl nicht mehr funktionieren. Um sich jetzt anzumelden, wird der Paramter -p oder –password benötigt.

    Code
    mysql -uroot -p

    Anschließend muss das eigene Passwort eingegeben werden. Der Login sollte jetzt erfolgreich sein.

    Jetzt müssen noch die Firewall Regeln angepasst werden um den Server abzusichern.

    Firewall einstellen

    Es gibt verschiedene Tools, mit denen IP-Tables (die Linux interne Firewall) angepasst werden können. Für dieses Tutorial wird der Einfachheit halber UFW empfohlen. Folgende Befehle müssen in dieser Reihenfolge genutzt werden, um die Firewall abzusichern. Eventuelle Nachfragen sind mit y zu bestätigen:

    Code
    apt -y install ufw
    ufw allow ssh
    ufw allow http
    ufw enable

    Die Firewall des Servers ist damit abgesichert. Mit folgendem Befehl kann der Status der Firewall angezeigt werden:

    Code
    ufw status

    In der Ausgabe sollten jetzt die Protokolle und Ports, die freigegeben sind, zu sehen sein.

    Dein LEMP Server ist jetzt einsatzbereit. Um zu testen ob alles funktioniert, kann man sich unter http://<IPoderDomain>/phpmyadmin einloggen und einen Blick auf die Systemübersicht (am rechten Rand der Startseite nach dem Login) werfen.

    Fazit

    Mit einem LEMP Server als Basis für Webanwendungen verfügt man über eine stabile, aber dennoch flexible Lösung. Durch die Installation über APT werden alle Pakete automatisch aktualisiert, wenn der Server aktualisiert wird. Als Vergleich kann ein LAMP Server aufgesetzt werden. Dann kann verglichen werden, auf welcher Konfiguration die Webanbindung besser läuft.


    Solltet ihr Fragen oder Änderungsvorschläge haben könnt ihr diese einfach unter diesem Post kommentieren :)
    Viel Spaß und Viel Erfolg

    The Global Supreme Legendary Eagle Master Guardian First Class
    Moritz | MinersWin

    Fachinformatiker in der Systemintegration
    The Geek Freaks Team
    Tuning Pack Developer
    HWS Head-Experte

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!