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:
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:
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:
Die entsprechenden Zeilen müssen wie hier gezeigt abgeändert werden:
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:
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.
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:
Damit PHPmyAdmin unter http:///phpmyadmin verfügbar ist, muss noch ein Link zum richtigen Verzeichnis erstellt werden. Dazu dient folgender Befehl:
Damit phpMyAdmin auch unter /phpmyadmin erreichbar ist, musst der nginx config etwas hinzugefügt werden:
Dem server { … } Block folgendes hinzufügen:
Anschließend kann Nano beendet werden, nachdem die Änderung abgespeichert wurden.
Anschließend muss NGinX neu gestartet werden, um die Installation abzuschließen:
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:
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:
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.
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:
Die Firewall des Servers ist damit abgesichert. Mit folgendem Befehl kann der Status der Firewall angezeigt werden:
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