Skip to content
Home » Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10 | 3 Quick answer

Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10 | 3 Quick answer

Schauen Sie sich die Themenartikel Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10 in der Kategorie an: https://ar.taphoamini.com/wiki/ bereitgestellt von der Website Artaphoamini.

See also  Jquery Size Of Array? Top Answer Update

Weitere Informationen zu diesem Thema Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10 finden Sie in den folgenden Artikeln: Wenn Sie einen Beitrag haben, kommentieren Sie ihn unter dem Artikel oder sehen Sie sich andere Artikel zum Thema Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10 im Abschnitt „Verwandte Artikel an.

See also  8 Häufige Verwendungen des Linux-Touch-Befehls | 6 Quick answer

See also  So installieren und konfigurieren Sie Samba unter CentOS 8 | 5 Trust the answer

LEMP ist ein Akronym und steht für: Linux Muina, nginx Webserver, MariaDB Datenbank (bzw MySQL), und PHP serverseitige Programmiersprache. Diese Software ist heute weit verbreitet, um dynamische Websites oder interaktive Webanwendungen auf Internetservern bereitzustellen.

Nginx ist ein moderner und ressourceneffizienter Webserver, der sich aktiv weiterentwickelt und nach dem Apache HTTP-Server der am zweithäufigsten verwendete Webserver im Internet ist. Es ist besonders schnell, weil es eine ereignisbasierte asynchrone Ansicht verwendet, um Anforderungen zu verarbeiten.

Dieses Tutorial zeigt, wie Sie den LEMP-Stack (mit Nginx MariaDB und PHP 7) auf dem neuesten Debian 10 installieren und konfigurieren.

ERFORDERNIS

  • Die neueste Version des Betriebssystems Debian 10 ist unter https://www.debian.org/CD/http-ftp/ verfügbar und kann von Grund auf auf einem VPS, einer virtuellen Maschine oder direkt auf einer dedizierten Maschine installiert werden.
  • Direkter Zugriff auf die Serverkonsole oder Remote-SSH-Verbindung.
  • Eine Netzwerkschnittstelle, die mit einer statischen Maschinen-IP-Adresse konfiguriert ist
  • Registrierter öffentlicher Domänenname mit A- und CNAME (www)-DNS-Einträgen, die auf der Serverseite des Nameservers konfiguriert sind. In diesem Leitfaden verwenden wir die Domain instance.com als Beispiel.

Schritt 1: Ersteinrichtung

Der erste Schritt besteht darin, sich als Root oder als Root-Benutzer bei Ihrem System anzumelden und Debian 10-Komponenten (Kernel-Updates, Paket-Updates und Sicherheitspatches) zu aktualisieren, indem Sie diese Befehle ausführen.

sudo apt  replace
sudo apt improve
sudo apt dist-upgrade

Stellen Sie dann sicher, dass Sie dem Hostnamen Ihres Computers einen aussagekräftigen Namen hinzufügen, indem Sie den Befehl ausführen. Sie müssen dann neu starten, um den neuen Hostnamen entsprechend anzuwenden.

sudo hostnamectl set-hostname hostname.yourdomain.com
sudo init 6

Installieren Sie dann die Dienstprogramme net-tools wget, curl und bash-completion zur späteren Verwendung, um Ihren Debian-Server einfach zu verwalten.

sudo apt set up net-tools sudo wget curl bash-completion

Schritt 2: Installieren Sie den Nginx-Webserver

Nginx ist ein moderner und leistungsfähiger Webserver, mit dem Webseiten Besuchern im Internet angezeigt werden. Installieren Sie den Nginx-Webserver aus dem Debian 10-Repository, indem Sie den folgenden Befehl in der Serverkonsole ausführen.

sudo apt-get set up nginx

Installieren des Nginx-Webservers

Wie Sie im obigen Bild sehen können, prüft der apt-Paketmanager auf zusätzliche Abhängigkeiten des Pakets und fragt, ob es in Ordnung ist, den Installationsvorgang fortzusetzen. Antwort ja (Herr), um Nginx zu installieren.

Nächster Lauf Nettostat Befehl zum Anzeigen und Überprüfen von Systemnetzwerk-Sockets, wenn der nginx-Daemon auf Port 80 / TCP lauscht. Als Alternativlösung lohnt es sich, eine Ausstellung zu organisieren systemctl Nginx-Daemon-Zustandsprüfungsbefehl, wie in der folgenden Abbildung gezeigt.

sudo netstat -tlp
sudo netstat –tlpn
sudo systemctl standing nginx.service

Schauen Sie sich Nginx an

Wenn der Nginx-Server auf dem System läuft, ist das Problem ifconfig , um Informationen zu Netzwerkschnittstellen und eine Liste mit Geräte-IP-Adressen anzuzeigen. Öffnen Sie dann Ihren Browser und besuchen Sie die Standard-Nginx-Website über HTTP, indem Sie Ihrem Browser die IP-Adresse hinzufügen. Nachricht Willkommen bei nginx! sollte im Browserfenster erscheinen.

http://www.beispiel.comAnzeige

Besessenheit

http://192.168.0.100

Nginx-Willkommensseite

Schritt 3: Aktivieren Sie das Nginx HTTP / 2.0-Protokoll

Standardmäßig werden die neuesten Versionen von Nginx-Binärdateien, die von Debian 10-Repositories bereitgestellt werden, mit dem HTTP/2.0-Protokoll erstellt. HTTP / 2.0 ist in TSL / SSL-Protokolle integriert und kann die Ladegeschwindigkeit von Webseiten durch sichere Transaktionen verbessern.

Alle modernen Browser wie Chrome oder Firefox sollten dieses Protokoll standardmäßig akzeptieren. Beachten Sie jedoch, dass die Browser Microsoft Internet Explorer und Microsoft Edge das http2-Protokoll noch nicht parsen können.

Um das Nginx HTTP/2.0-Protokoll in Debian 10 zu aktivieren, müssen Sie die standardmäßige Nginx-Konfigurationsdatei ändern oder eine neue Konfigurationsdatei erstellen und 443-Servern einen TLS-Codeblock hinzufügen. Sichern Sie dazu zunächst die standardmäßige Nginx-Sites-Available-Konfiguration, indem Sie den folgenden Befehl ausführen. Bestätigen Sie, dass die Sicherung erfolgreich struggle, indem Sie das Verzeichnis der verfügbaren Sites auflisten.

sudo cp /and so forth/nginx/sites-available/default,.backup
ls /and so forth/nginx/sites-available/

Erstellen Sie als Nächstes eine Nginx-TLS-Konfigurationsdatei mit einem Texteditor und fügen Sie diesen Inhalt hinzu.

sudo nano /and so forth/nginx/sites-available/default-ssl

default-ssl Zusammenfassung:

    server 
                pay attention 443 ssl http2 default_server;
                pay attention [::]:443 ssl http2 default_server;
                #server_name  www.area.tld;
                server_name _;
                                
                root /var/www/html;
                                
                access_log /var/log/nginx/entry.log;
                error_log /var/log/nginx/error.log;
                
                #SSL Certificates
                ssl_certificate "/etc/nginx/ssl/cert.pem";
                ssl_certificate_key "/etc/nginx/ssl/privekey.pem";
                ssl_dhparam /and so forth/nginx/ssl/dhparam.pem;
                
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                #ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
 
                ssl_session_cache shared:SSL:1m;
                ssl_session_timeout 10m;
                ssl_ciphers HIGH:!aNULL:!MD5;
                ssl_prefer_server_ciphers  on;
               
                add_header Strict-Transport-Security "max-age=31536000;
                #includeSubDomains" all the time;
 
                location / 
                index index.php index.html index.htm;
                    try_files $uri $uri/ /index.php?$args $uri/ =404;
                
 
                                set $cache_uri $request_uri;
                
                location ~ /.well-known 
                permit all;
                               
               location ~ .php$ 
                                embody snippets/fastcgi-php.conf;
                #
                #             # With php-fpm (or different unix sockets):
                              fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                #             # With php-cgi (or different tcp sockets):
                #             fastcgi_pass 127.0.0.1:9000;
                
 
                # deny entry to .htaccess recordsdata, if Apache's doc root
                # concurs with nginx's one
                #
                #location ~ /.ht 
                #             deny all;
                #
                   

Die Richtlinie erlaubt die Verwendung des HTTP/2.0-Protokolls http2 von der untersten Zeile.

 pay attention 443 ssl http2 default_server;

Wenn der Browser Ihres Besuchers das HTTP2-Protokoll nicht unterstützt, entfernen Sie es http2 um die Protokollierung in den Servereinstellungen zu deaktivieren und die Änderungen anzuwenden, um den Nginx-Dienst neu zu starten.

Wenn Sie eine registrierte Domain haben oder IP-basiertes virtuelles Hosting verwenden, müssen Sie beim nächsten Mal Ihren Domainnamen oder Ihre IP-Adresse eingeben. Servername Wie im folgenden Beispiel gezeigt.

server_name www.instance.com instance.com;

Sie haben die Bearbeitung der standardmäßigen Nginx-Konfigurationsdatei mit den obigen Einstellungen abgeschlossen

Konfigurieren Sie SSL auf Nginx

In der obigen nginx TSL-Konfigurationsdatei haben wir den Pfad zum TLS-Zertifikat und -Schlüssel angegeben. Da die Schlüssel noch nicht auf Ihrem System installiert sind, geben Sie diesen Befehl ein, um ein selbstsigniertes SSL-Zertifikat und eine Schlüsseldatei zu generieren. Beim Erstellen eines SSL-Zertifikats sind einige Fragen zu stellen. Geben Sie einen zweistelligen Länder-, Bundesstaats- oder Provinzcode, einen Städtenamen, einen Organisationsnamen, einen Organisationseinheitsnamen, einen generischen Servernamen und eine gültige E-Mail-Adresse ein. Stellen Sie sicher, dass der allgemeine Name mit der IP-Adresse des Servers übereinstimmt, den Sie für den Zugriff auf die Website von dem DNS-Server verwendet haben, der dem FQDN-Eintrag Ihres Computers entspricht. Das Zertifikat und der Schlüssel werden in einem neuen nginx-Verzeichnis mit dem Namen ssl gespeichert, wie im folgenden Screenshot gezeigt.

sudo mkdir /and so forth/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /and so forth/nginx/ssl/privekey.pem -out /and so forth/nginx/ssl/cert.pem
ls /and so forth/nginx/ssl/

Erstellen Sie ein SSL-Zertifikat

Erstellen Sie außerdem eine neue robuste Diffie-Hellman-Chiffre, die Sie in der obigen Konfigurationsdatei finden ssl_dhparam die Ausdruckszeile, die den folgenden Befehl ausgibt:

sudo openssl dhparam -out /and so forth/nginx/ssl/dhparam.pem 2048

SSL-Zertifikat erstellt

Aktivieren Sie schließlich nach dem Erstellen des Diffie-Hellman-Schlüssels die TLS-Konfigurationsdatei, indem Sie einen symbolischen Link erstellen. default-ssl Konfigurationsdatei verfügbaren Seiten zu autorisierte Websites Ausgabe des folgenden Befehls.

ln -s /and so forth/nginx/sites-available/default-ssl /and so forth/nginx/sites-enabled/

Testen Sie als Nächstes Ihre Nginx-Konfigurationsdatei auf Syntaxfehler, und wenn alles in Ordnung ist, starten Sie den Nginx-Daemon neu, um alle Änderungen durch Ausführen der Befehle zu übernehmen.

sudo nginx -t
sudo systemctl restart nginx.service

Überprüfen Sie, ob die SSL-Einrichtung erfolgreich ist

Um zu überprüfen, ob der Nginx-Webserver eine Verbindung zum SSL-Port herstellt, führen Sie netstat aus und zeigen Sie Port 443 als Abhörmodus an.

netstat -tlpn | grep nginx

Die obigen Schritte sind im Screenshot unten dargestellt.

Überprüfen Sie den Dienst mit netstat

Navigieren Sie dann von einem Browser mit dem HTTP-Protokoll zu Ihrem Domänennamen oder Ihrer Server-IP, um die Standard-nginx-Seite anzuzeigen. Da Sie selbstsignierte Zertifikate verwenden, sollte in Ihrem Browser eine Fehlermeldung angezeigt werden. Melden Sie einen Fehler, um zur Standard-Startseite von Nginx zu gelangen.

Warnung vor selbstsigniertem SSL-Zertifikat

Wenn Nginx keinen Standardwert bereitstellt Inhaltsverzeichnis.html web page im Webroot-Verzeichnis geben Sie den folgenden Befehl ein, um die Indexseite zu erstellen.

echo "test page" | tee /var/www/html/index.html

SSL-Testseite

Geben Sie diesen Befehl ein, um die Existenz des von Nginx gemeldeten HTTP / 2.0-Protokolls zu überprüfen. Suche h2 in vom Server veröffentlichten Protokolldateien.

 openssl s_client -connect localhost:443 -nextprotoneg ''

Testen Sie Ihr SSL-Zertifikat mit dem Befehl openssl

Sie können den Verbindungsstatus und das Nginx http2-Protokoll auch anzeigen, indem Sie im Chrome-Browser die Funktionstaste F12 drücken und die Seite abrufen. Um das von der Anwendung verwendete Protokoll anzuzeigen, gehen Sie zur Registerkarte Netzwerk, klicken Sie mit der rechten Maustaste auf das Menü Typ und aktivieren Sie Protokolldatei. Das HTTP2-Protokoll sollte wie folgt angezeigt werden h2 wie im Screenshot unten in der aktuellen Protokollspalte gezeigt.

Zertifikatsprüfung in einem Browser

Schritt 4: Installieren Sie PHP 7

Der Nginx-Webserver kann dynamische Webinhalte mithilfe des PHP-Programmierspracheninterpreters über den PHP FastCGI-Prozessmanager bereitstellen, an den Nginx Verarbeitungsanforderungen sendet. Der FastCGI-Prozessmanager kann installiert werden php-fpm vorkompiliertes Paket, das in den offiziellen Debian 9-Repositories verfügbar ist.

Führen Sie zusammen mit den zusätzlichen Paketen, die es dem PHP-fpm-Prozessmanager und dem PHP7.0-Interpreter ermöglichen, mit dem auf dem System installierten PHP-Nginx-Webserver zu kommunizieren, den folgenden Befehl in der Serverkonsole aus:

sudo apt set up php7.3 php7.3-fpm php7.3-curl php7.3-gd

Starten Sie PHP-FPM

Nachdem Sie den PHP 7.3-Interpreter erfolgreich auf Ihrem System installiert haben, starten und testen Sie den php7.3 fpm satan, indem Sie den folgenden Befehl ausführen:

sudo systemctl begin php7.3-fpm
sudo systemctl standing php7.3-fpm

In der obigen Nginx-TLS-Konfigurationsdatei haben wir bereits die PHP FastCGI-Prozessmanager-Blockkonfigurationen hinzugefügt, um dynamische Inhalte bereitzustellen. Der Codeblock, der es Nginx ermöglicht, den PHP-Interpreter zu verwenden, wird im nächsten Abschnitt gezeigt, sodass keine zusätzlichen Schritte erforderlich sind, um die Nginx-TSL-Konfigurationsdatei zu ändern. Im Screenshot unten sind die #-Symbole am Anfang der Zeilen Kommentare. Standardmäßig ignoriert der Nginx-Webserver Kommentare in Konfigurationsdateien.

location ~ .php$ 
embody snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;

Testen Sie die PHP-Konfiguration

Um zu testen und zu überprüfen, ob Nginx PHP-Dateien erfolgreich an einen PHP-Prozessor übertragen kann, erstellen Sie eine PHP data.php Testen Sie die Konfigurationsdatei, indem Sie den Befehl ausführen

sudo su -c 'echo "<?php phpinfo(); ?>" > /var/www/html/data.php'

Besuchen Sie dann die PHP-Infoseite in Ihrem Webbrowser, indem Sie zum Domänennamen oder der öffentlichen IP-Adresse Ihres Servers navigieren und dann /data.php wie in der Abbildung unten gezeigt.

https://www.example.com/info.php

Besessenheit

http://192.168.0.100/info.php

Sie können auch das vom Server für die Leitung angekündigte HTTP / 2.0-Protokoll überprüfen $_SERVER[‘SERVER_PROTOCOL’] PHP-Variablen.

Führen Sie es aus, um andere PHP7.3-Module zu installieren richtige Suche php7.3 Suchen und installieren Sie ein bestimmtes PHP-Modul. Wenn Sie ein Content-Management-System wie WordPress installieren möchten, installieren Sie die folgenden zusätzlichen Module:

sudo apt set up php7.3-mcrypt php7.3-mbstring

Neu installierte PHP-Module sind jedoch nicht standardmäßig auf dem System aktiviert. Starten Sie den PHP-FPM-Dienst neu, um ihn zu aktivieren.

sudo systemctl restart php7.3-fpm.service

Schritt 5: Installieren Sie die MariaDB-Datenbank

Schließlich fehlt das letzte Stück des LAMP-Stack-Puzzles in der Datenbank. Die LEMP-Komponente der MariaDB-Datenbank wird verwendet, um Datensätze in Tabellen und Spalten zu speichern. Verwaltet dynamisch die Daten einer Webanwendung. Um MariaDB zu installieren, führen Sie diesen Befehl auf der Serverkonsole aus. Starten Sie dann den PHP-FPM-Daemon neu, um das für den Zugriff auf die Datenbank erforderliche PHP-MySQL-Modul zu aktivieren.

sudo apt set up mariadb-server mariadb-client php7.0-mysql
sudo systemctl restart php7.0-fpm.service

Standardmäßig können das System-Root-Konto oder Root-Benutzer auf die Datenbank zugreifen, ohne ein Kennwort einzugeben. Um dieses Verhalten so zu ändern, dass MySQL jedes Mal zur Eingabe eines Passworts auffordert, wenn ein Systembenutzer versucht, auf die Datenbank zuzugreifen, melden Sie sich als CLI-Root bei der MySQL-Datenbank an und führen Sie die folgenden Befehle in der MySQL-Konsole aus:

sudo mysql
MariaDB> use mysql;
MariaDB> replace person set plugin='' the place User="root";
MariaDB> flush privileges;
MariaDB> exit

MariaDB

Legen Sie das Root-Passwort in MariaDB fest

Stellen Sie im nächsten Schritt sicher, dass Sie MariaDB sichern, indem Sie das Sicherheitsskript ausführen mysql_secure_installation. Stellt das Debian-Repository-Installationspaket bereit. Während der Ausführung stellt das Skript eine Reihe von Fragen, um die MariaDB-Datenbank zu schützen. Zum Beispiel: Ändern Sie das MySQL-Root-Passwort, entfernen Sie anonyme Benutzer, deaktivieren Sie die Remote-Root-Sitzung und löschen Sie die Testdatenbank. Führen Sie das Skript aus, indem Sie den folgenden Befehl ausführen. Beantworten Sie alle gestellten Fragen, um den MySQL-Daemon vollständig zu schützen. Verwenden Sie dieses Skript außer als Leitfaden für die Ausgabe.

sudo 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 safe it, we'll want the present
password for the basis person.  If you've got simply put in MariaDB, and
you have not set the basis password but, the password can be clean,
so you need to simply press enter right here.
Enter present password for root (enter for none):

OK, efficiently used password, transferring on...

Setting the basis password ensures that no one can log into the MariaDB
root person with out the right authorisation.

You have already got a root password set, so you may safely answer 'n'.

Change the basis password? [Y/n] y

New password:

Re-enter new password:

Password up to date efficiently!

Reloading privilege tables..

 ... Success!

By default, a MariaDB set up has an nameless person, permitting anybody
to log into MariaDB with out having to have a person account created for
them.  This is meant just for testing, and to make the set up
go a bit smoother.  You ought to take away them earlier than transferring right into a
manufacturing atmosphere.

Remove nameless customers? [Y/n] y

 ... Success!

Normally, root ought to solely be allowed to attach from 'localhost'.  This
ensures that somebody can't guess on the root password from the community.
Disallow root login remotely? [Y/n] y

 ... Success!

By default, MariaDB comes with a database named 'take a look at' that anybody can
entry.  This can also be supposed just for testing, and must be eliminated
earlier than transferring right into a manufacturing atmosphere.
Remove take a look at database and entry to it? [Y/n] y
 - Dropping take a look at database...
 ... Success!
 - Removing privileges on take a look at database...
 ... Success!
Reloading the privilege tables will make sure that all adjustments made thus far
will take impact instantly.

Reload privilege tables now? [Y/n] y

 ... Success!

Cleaning up...

All accomplished!  If you've got accomplished all the above steps, your MariaDB
set up ought to now be safe.

Thanks for utilizing MariaDB!

Um schließlich zu testen, wie MariaDB funktioniert, greifen Sie über die Konsole auf die Datenbank zu und führen Sie diesen Befehl aus. Eine Liste der Standarddatenbanken sollte in der MariaDB-Konsole erscheinen. Beenden Sie die MariaDB-Konsole Ausfahrt Aussage.

mysql -u root –p
MariaDB [(none)]> present databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
 
MariaDB [(none)]> exit

Das ist alles! Nginx-Webserver, MariaDB-Datenbank und PHP-Programmiersprache sind auf dem Debian 10-Rechner installiert. Jetzt können Sie damit beginnen, dynamische Websites oder Webanwendungen für Ihre Besucher zu erstellen.

Einige Bilder zum Thema Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10

Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10
Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10

Einige verwandte Schlüsselwörter, nach denen die Leute zum Thema suchen Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10

#Installieren #Sie #Nginx #mit #PHP #und #MySQL #LEMP #SSL #unter #Debian

Weitere Informationen zu Schlüsselwörtern Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10 auf Bing anzeigen

Die Anzeige von Artikeln zum Thema Installieren Sie Nginx mit PHP und MySQL (LEMP) plus SSL unter Debian 10 ist beendet. Wenn Sie die Informationen in diesem Artikel nützlich finden, teilen Sie sie bitte. vielen Dank.

Leave a Reply

Your email address will not be published. Required fields are marked *