LEMP-Stack steht für Linux-, Nginx-, MariaDB- und PHP-Stack. Es ist ein weit verbreiteter Tech-Stack zum Hosten von Websites und Blogs.
Dieses Tutorial zeigt Ihnen, wie Sie Nginx mit PHP-Unterstützung (über PHP-FPM) und MySQL-Unterstützung auf Ubuntu 16.04 installieren.
LEMP-Stack installieren
Installieren Sie Nginx
Laden Sie den Signaturschlüssel von der offiziellen Website herunter.
wget http://nginx.org/keys/nginx_signing.key
Fügen Sie es hinzu, um Warnungen während der Installation von nginx zu vermeiden.
sudo apt-key add nginx_signing.key
Fügen Sie das Nginx-Repository hinzu, indem Sie die folgenden Informationen einfügen.
echo "deb http://nginx.org/packages/mainline/ubuntu xenial nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
Repositories aktualisieren.
sudo apt-get update
Installieren Sie Nginx mit dem folgenden Befehl.
sudo apt-get install -y nginx
Starten Sie den Nginx-Dienst nach der Installation.
sudo systemctl start nginx
Öffnen Sie einen Webbrowser und besuchen Sie http://Ihre-IP-Adresse.
Sie sollten die folgende Seite sehen, und diese Seite bestätigt, dass Nginx erfolgreich auf dem Server installiert wurde.

Das standardmäßige nginx-Dokumentenstammverzeichnis unter Ubuntu 16.04 ist /usr/share/nginx/html/. Die Konfigurationsdateien befinden sich im Verzeichnis /etc/nginx.
Installieren Sie MariaDB
Ubuntu 16.04 enthält MariaDB v10.0, was bereits das Ende der Lebensdauer darstellt. Also werden wir MariaDB v10.4 aus dem offiziellen Repository installieren.
MariaDB-Repository auf Ihrem System hinzufügen.
sudo apt-get install -y software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.4/ubuntu xenial main' sudo apt-get update
Installieren Sie MariaDB mit dem folgenden Befehl.
sudo apt-get install -y mariadb-server mariadb-client
Als nächstes sichern Sie die MariaDB-Installation mit dem Befehl mysql_secure_installation.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): << No Password - Press Enter OK, successfully used password, moving on... Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have your root account protected, so you can safely answer 'n'. Switch to unix_socket authentication [Y/n] N << Disabling Unix Socket login and enabling password Login ... skipping. You already have your root account protected, so you can safely answer 'n'. Change the root password? [Y/n] Y << Change MariaDB root password New password: << Enter Password Re-enter new password: << Re-Enter Password Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y << Remove Anonymous users ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y << Disallow root login remotely ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y << Remove test database - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y << Reload privilege ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Installieren Sie PHP
Als nächstes installieren Sie PHP über PHP-FPM (PHP-FPM (FastCGI Process Manager), es ist eine alternative PHP-FastCGI-Implementierung. Es hat einige zusätzliche Funktionen, die für Websites jeder Größe nützlich sind, insbesondere für stark frequentierte Websites).
Ubuntu 16.04 enthält PHP-FPM v7.0, was bereits das Ende der Lebensdauer darstellt. Daher werden wir PHP-FPM v7.3 aus dem Ondřej Surý-Repository installieren.
LESEN: So installieren Sie PHP 7.3/7.2/7.1 auf Ubuntu 16.04
Repository hinzufügen.
sudo add-apt-repository ppa:ondrej/php sudo apt-get update
Installieren Sie PHP-FPM v7.3 mit dem folgenden Befehl.
sudo apt-get install -y php7.3-fpm php7.3-mysql php7.3-cli
Bearbeiten Sie die folgende Datei, um PHP-FPM so zu konfigurieren, dass TCP-Verbindungen anstelle von Unix-Sockets verwendet werden.
sudo nano /etc/php/7.3/fpm/pool.d/www.conf
Ändern Sie den Listen-Parameter wie unten gezeigt.
listen = 127.0.0.1:9000
LAMP-Stack testen
Lassen Sie uns für die folgenden Details einen namensbasierten virtuellen Host auf dem Nginx-Server erstellen.
Servername: server.itzgeek.local
Dokumentstamm: /usr/share/nginx/html/server.itzgeek.local
Erstellen Sie die Konfigurationsdatei namens virtual.conf im Verzeichnis /etc/nginx/conf.d/.
sudo nano /etc/nginx/conf.d/virtual.conf
Fügen Sie den folgenden Inhalt hinzu.
server { server_name server.itzgeek.local; root /usr/share/nginx/html/server.itzgeek.local; location / { index index.html index.htm index.php; } location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Erstellen Sie das Stammverzeichnis des Dokuments.
sudo mkdir -p /usr/share/nginx/html/server.itzgeek.local
Legen Sie zum Testen von PHP eine PHP-Datei im Dokumentenstamm des erstellten virtuellen Hosts ab.
Kopieren Sie im Terminal die folgende Zeile:
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/server.itzgeek.local/index.php
Starten Sie die Dienste neu.
sudo systemctl restart nginx sudo systemctl restart php7.3-fpm
Erstellen Sie auf Ihrem Client-System einen Host-Eintrag für Ihre Domäne (server.itzgeek.local) in der Datei /etc/hosts, falls Ihre Umgebung keinen DNS-Server hat.
sudo nano /etc/hosts
Der Host-Eintrag wird unten angezeigt
192.168.1.10 server.itzgeek.local
Öffnen Sie nun Ihren Webbrowser und geben Sie Ihre Domain in die Webadresse ein:
http://server.itzgeek.localDie Seite sieht wie folgt aus:
Im obigen Screenshot funktioniert PHP und es funktioniert über FPM/FastCGI, wie in der Server-API-Zeile gezeigt.

Wenn Sie weiter nach unten scrollen, sehen Sie alle Module, die in PHP aktiviert sind. Der folgende Screenshot zeigt Informationen zum MySQL-Modul.

Schlussfolgerung
Das ist alles. Ich hoffe, Sie haben gelernt, wie man LEMP Stack unter Ubuntu 16.04 installiert. Erwägen Sie, ein Let’s Encrypt-Zertifikat für Ihre Domain einzurichten, um die Sicherheit zu verbessern. Bitte teilen Sie uns Ihr Feedback im Kommentarbereich mit.