Nginx (ausgesprochen „Engine x“) ist ein kostenloser, leistungsstarker Open-Source-HTTP-Server. Nginx ist bekannt für seine Stabilität, seinen umfangreichen Funktionsumfang, seine einfache Konfiguration und seinen geringen Ressourcenverbrauch. Dieses Tutorial zeigt, wie Sie Nginx auf einem Ubuntu 18.04 LTS-Server mit PHP 7.2-Unterstützung (über PHP-FPM) und MySQL-Unterstützung (LEMP = L inux + nginx (ausgesprochen "e Engine x") + M ySQL + P PS).
Voraussetzungen
- Ubuntu 18.04 LTS-Server
- Root-Rechte
Was werden wir tun?
- Installieren Sie Nginx
- Installieren Sie MySQL
- Installieren Sie PHP-FPM
- Nginx und PHP-FPM konfigurieren
- Installieren Sie PhpMyAdmin
- PhpMyAdmin konfigurieren
- Testen
Schritt 1 – Nginx installieren
Nginx oder Engine x ist ein leistungsstarker HTTP- und Proxy-Server mit geringem Speicherverbrauch. Die meisten großen Websites wie Netflix, Pinterest, CloudFlare und GitHub verwenden Nginx.
In diesem Schritt installieren wir den Nginx-Webserver aus dem Ubuntu-Repository.
Führen Sie den folgenden Befehl aus.
sudo apt install nginx -y
Starten Sie nach Abschluss der Installation den Nginx-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
systemctl start nginx
systemctl enable nginx
Die Nginx-Installation ist abgeschlossen.
Firewall konfigurieren
Es wird empfohlen, die Firewall auf dem Server einzuschalten.
Fügen Sie den SSH- und HTTP-Dienstport zur Firewall-Konfiguration hinzu.
Führen Sie den folgenden UFW-Befehl aus.
ufw allow ssh
ufw allow http
Starten Sie nun die UFW-Firewall und aktivieren Sie sie so, dass sie jedes Mal beim Systemstart gestartet wird.
ufw enable
Der Nginx-Webserver läuft unter der UFW-Firewall.
Schritt 2 - MySQL installieren
MySQL ist das beliebteste Open-Source-Managementsystem für relationale Datenbanken (RDBMS), das von der Oracle Corporation entwickelt wurde. Es ist eine zentrale Komponente des LEMP-Stacks und wir werden die neueste MySQL-Version aus dem Ubuntu-Repository installieren.
Installieren Sie MySQL mit dem apt-Befehl unten.
sudo apt install mysql-server mysql-client -y
Nachdem die MySQL-Installation abgeschlossen ist, starten Sie den MySQL-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
systemctl start mysql
systemctl enable mysql
Und wir haben MySQL 5.7 auf einem Ubuntu 18.04-Server installiert.
Schritt 3 – PHP-FPM installieren
PHP-FPM oder FastCGI Process Manager ist eine Alternative für das ältere PHP FastCGI, das zusätzliche Funktionen und Geschwindigkeitsverbesserungen bietet. Es eignet sich gut für kleine bis große Websites, die auf der Programmiersprache PHP basieren.
In diesem Schritt installieren wir PHP7.2-FPM mit einigen zusätzlichen Erweiterungen, die von phpmyadmin benötigt werden.
Installieren Sie PHP-FPM mit dem folgenden Befehl.
sudo apt install php7.2 php7.2-fpm php7.2-cli php7.2-curl php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php-pear -y
Starten Sie nun den PHP-FPM-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird, nachdem die gesamte Installation abgeschlossen ist.
systemctl start php7.2-fpm
systemctl enable php7.2-fpm
PHP7.2-FPM läuft unter Ubuntu 18.04 unter der Sock-Datei, überprüfen Sie es mit dem netstat-Befehl.
netstat -pl | grep php
Schritt 4 – Nginx und PHP-FPM konfigurieren
In diesem Schritt konfigurieren wir den Nginx-Webserver und PHP-FPM.
Nginx konfigurieren
Gehen Sie in das Konfigurationsverzeichnis „/etc/nginx“ und bearbeiten Sie die Datei „nginx.conf“ mit vim oder nano.
cd /etc/nginx/
vim nginx.conf
Entkommentieren Sie die folgenden Zeilen.
keepalive_timeout 2; server_tokens off;
Speichern Sie die Konfigurationsdatei und verlassen Sie den Editor.
Bearbeiten Sie nun die standardmäßige virtuelle Nginx-Hostdatei.
vim sites-available/default
Entkommentieren Sie die unten gezeigte PHP-Zeile und ändern Sie die Sock-Datei-Zeile.
location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; # # With php-cgi (or other tcp sockets): # fastcgi_pass 127.2.0.1:9000; }
Speichern und beenden.
Testen Sie die Nginx-Konfiguration und stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann den Dienst neu.
nginx -t
systemctl reload nginx
PHP-FPM konfigurieren
Gehen Sie in das Verzeichnis „/etc/php/7.2“ und bearbeiten Sie die Datei „php.ini“.
cd /etc/php/7.2/
vim fpm/php.ini
Kommentieren Sie die Zeile „cgi.fix_patinfo“ aus und ändern Sie den Wert auf „0“.
cgi.fix_pathinfo=0
Speichern und beenden.
Laden Sie den PHP-FPM-Dienst neu.
systemctl reload php7.2-fpm
Und wir haben die Konfiguration des Nginx-Webservers und von PHP-FPM abgeschlossen.
Schritt 5 - PhpMyAdmin installieren
PhpMyAdmin ist eine PHP-basierte Anwendung zur Verwaltung von MySQL- oder MariaDB-Datenbanken über einen Webbrowser.
In diesem Schritt installieren und konfigurieren wir phpmyadmin unter dem LEMP-Stack (Linux, Nginx, MySQL und PHP-FPM).
Installieren Sie PHPMyAdmin mit dem folgenden apt-Befehl.
sudo apt install phpmyadmin -y
Während der Installation werden Sie nach der Webserverkonfiguration für phpmyadmin gefragt.
Wählen Sie keine Option und bewegen Sie den Cursor auf 'OK'.
Wählen Sie für die Konfiguration der phpmyadmin-Datenbank „Ja“.
Und geben Sie den neuen „STRONG“ phpmyadmin admin ein, z. B. „[email protected]#“.
Wiederholen Sie das Passwort „[email protected]#“.
Und die Installation von phpmyadmin ist abgeschlossen.
Schritt 6 - PhpMyAdmin konfigurieren
Nach der Installation von phpmyadmin müssen wir phpmyadmin so konfigurieren, dass es unter dem Nginx-Webserver ausgeführt wird, und den Zugriff des MySQL-Benutzers phpmyadmin konfigurieren.
PhpMyAdmin mit Nginx konfigurieren
Um phpmyadmin unter dem Nginx-Webserver auszuführen, müssen wir die Konfiguration zur Konfigurationsdatei des virtuellen Hosts hinzufügen.
Gehen Sie in das Konfigurationsverzeichnis „/etc/nginx“ und bearbeiten Sie die standardmäßige virtuelle Hostdatei.
cd /etc/nginx/
vim sites-available/default
Fügen Sie die folgende Nginx-Konfiguration für phpmyadmin in die Klammer „server {...}“ ein.
location /phpmyadmin { root /usr/share/; index index.php; try_files $uri $uri/ =404; location ~ ^/phpmyadmin/(doc|sql|setup)/ { deny all; } location ~ /phpmyadmin/(.+\.php)$ { fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } }
Speichern und beenden.
Testen Sie die nginx-Konfiguration und starten Sie den nginx-Dienst neu.
nginx -t
systemctl reload nginx
Und wir haben die Nginx-Konfiguration für phpmyadmin hinzugefügt.
Mysql-Benutzer für PhpMyAdmin konfigurieren
In diesem Tutorial verwenden wir einen Nicht-Root-MySQL-Benutzer für phpmyadmin. Wir werden einen neuen Benutzer erstellen und ihm alle Datenbankrechte innerhalb des Servers gewähren.
Melden Sie sich bei der MySQL-Shell an.
mysql -u root -p
Erstellen Sie nun einen neuen Benutzer mit den unten stehenden MySQL-Abfragen.
create user [email protected]'localhost' identified by '[email protected]#';
grant all privileges on *.* to [email protected]'localhost' identified by '[email protected]#';
flush privileges;
exit;
Und wir haben einen neuen Benutzer für den phpmyadmin-Zugriff erstellt.
Schritt 7 – Testen
PHP-Dateien testen
Gehen Sie in das Web-Root-Verzeichnis '/var/www/html' und erstellen Sie eine neue phpinfo-Datei.
cd /var/www/html/
vim info.php
Fügen Sie das folgende phpinfo-Skript ein.
<?php phpinfo(); ?>
Speichern und beenden.
Öffnen Sie nun den Webbrowser und geben Sie die Server-IP-Adresse wie unten gezeigt ein. Ersetzen Sie die IP durch Ihre Server-IP.
http://192.168.33.10/info.php
Und unten finden Sie alle Informationen zur Konfiguration des PHP-Servers.
Testanmeldung PhpMyAdmin
Geben Sie im Webbrowser die folgende phpmyadmin-URL ein (ersetzen Sie die IP durch Ihre Server-IP).
http://192.168.33.10/phpmyadmin/
Geben Sie auf der Anmeldeseite von phpmyadmin den Benutzer „hakase“ mit dem Passwort „[email protected]#“ ein und klicken Sie auf die Schaltfläche „Los“.
Jetzt sehen wir das phpmyadmin-Dashboard wie unten.
Der LEMP Stack und PhpMyAdmin wurden erfolgreich auf Ubuntu 18.04 LTS installiert.