So installieren Sie Nginx, Mariadb 10, Php 7 (Lemp Stack) in 16.10/16.04

So installieren Sie Nginx, Mariadb 10, Php 7 (Lemp Stack) in 16.10/16.04

Der Lemp Stack ist ein Akronym, das eine Gruppe von Paketen darstellt (Linux OS, Nginx Web Server, MySQL \ Mariadb-Datenbank und dynamische Programmiersprache mit PHP-Server), mit denen dynamische Webanwendungen und Webseiten bereitgestellt werden.

In diesem Tutorial führen Sie die Installation eines LEMP -Stacks mit Mariadb 10, Php 7 Und Http 2.0 Unterstützung für Nginx An Ubuntu 16.10 Und Ubuntu 16.04 Server-/Desktop -Editionen.

Anforderungen

  1. Installation von Ubuntu 16.04 Server Edition [Anweisungen funktioniert auch Ubuntu 16.10]

Schritt 1: Installieren Sie den NGINX -Webserver

1. NGINX ist ein moderner und ressourceneffizienter Webserver, der verwendet wird, um Webseiten für Besucher im Internet anzuzeigen. Wir beginnen mit der Installation von NGINX -Webserver von offiziellen Repositories von Ubuntu mithilfe der Befehlszeile der APT.

$ sudo apt-get install nginx 
Installieren Sie Nginx auf Ubuntu 16.04

2. Geben Sie als nächstes die Befehle netstat und systemctl aus, um zu bestätigen, ob Nginx wird gestartet und am Port bindet 80.

$ netstat -tlpn 
Überprüfen Sie die NGINX -Netzwerkportverbindung
$ sudo systemctl Status nginx.Service 
Überprüfen Sie den Status des Nginx -Dienstes

Sobald Sie die Bestätigung haben, dass der Server gestartet wird.

http: // ip-address 
Überprüfen Sie die Nginx -Webseite

Schritt 2: Aktivieren Sie Nginx HTTP/2.0 Protokoll

3. Der Http/2.0 Protokoll, das in der neuesten Veröffentlichung von Nginx -Binärdateien standardmäßig erstellt wird Ubuntu 16.04 Arbeitet nur in Verbindung mit SSL und verspricht eine enorme Geschwindigkeitsverbesserung beim Laden von Web -SSL -Webseiten.

Das Protokoll in Nginx auf aktivieren Ubuntu 16.04, Navigieren Sie zuerst zu Nginx verfügbar.

$ cd/etc/nginx/sites-verfügbar.Backup 
Sicherung der Konfigurationsdatei Nginx -Sites Backup

4. Erstellen Sie dann mit einem Texteditor eine neue Standardseite mit den folgenden Anweisungen:

Server Listen 443 SSL HTTP2 default_server; Hören [::]: 443 SSL http2 default_server; root/var/www/html; Indexindex.HTML -Index.HTM -Index.PHP; Server_Name 192.168.1.13; Ort / try_files $ uri $ uri / = 404;  SSL_Certificate/etc/nginx/ssl/nginx.CRT; ssl_certificate_key/etc/nginx/ssl/nginx.Taste; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; ssl_prefer_server_ciphers on; SSL_CIPHERS EECDH+CHACHA20: EECDH+AES128: RSA+AES128: EECDH+AES256: RSA+AES256: EECDH+3DES: RSA+3DES:!MD5; ssl_dhparam/etc/nginx/ssl/dhparam.Pem; SSL_Session_Cache Shared: SSL: 20m; SSL_Session_Timeout 180m; Resolver 8.8.8.8 8.8.4.4; Add_header Strict-transport-Security "max-altern = 31536000; #Includesubdomains" immer; Ort ~ \.Php $ inklusive Snippets/Fastcgi-Php.conf; FASTCGI_PASS UNIX:/Run/PHP/PHP7.0-fpm.Socke;  Ort ~ /\.ht alles leugnen;  server listen 80; Hören Sie [::]: 80; Server_Name 192.168.1.13; Rückgabe 301 https: // $ server_name $ request_uri;  
Aktivieren Sie das Nginx HTTP 2 -Protokoll

Das obige Konfigurationsausschnitt ermöglicht die Verwendung von Http/2.0 durch Hinzufügen des http2 Parameter für alle SSL -Hörenanweisungen.

Außerdem wird der letzte Teil des in der Serveranweisung eingeschlossenen Auszugs verwendet, um den gesamten Nicht-SSL-Verkehr auf SSL/TLS-Standard-Host umzuleiten. Ersetzen Sie auch die Servername Richtlinie, die zu Ihrer eigenen IP -Adresse oder Ihrem DNS -Datensatz übereinstimmt (vorzugsweise FQDN).

5. Generieren und listen Sie die SSL -Zertifikatdatei und den Schlüssel mit den oben genannten Einstellungen mit den oben genannten Einstellungen mit den oben genannten Einstellungen beendet, indem Sie die folgenden Befehle ausführen.

Füllen Sie das Zertifikat mit Ihren eigenen benutzerdefinierten Einstellungen und achten Sie darauf Gemeinsamen Namen Einstellung zu Ihrem DNS -FQDN -Datensatz oder Ihrer Server -IP -Adresse, mit der Sie auf die Webseite zugreifen können.

$ sudo mkdir/etc/nginx/ssl $ sudo opensensl req -x509 -nodes -days 365 -NewKey RSA: 2048 -keyout/etc/nginx/ssl/nginx.Schlüssel -out/etc/nginx/ssl/nginx.crt $ ls/etc/nginx/ssl/ 
Generieren Sie ein SSL -Zertifikat und den Schlüssel für Nginx

6. Erstellen Sie auch eine starke DH Cypher, die in der obigen Konfigurationsdatei auf geändert wurde ssl_dhparam Anweisungszeile, indem der folgende Befehl ausgestellt wird:

$ sudo opensensl dhparam -out/etc/nginx/ssl/dhparam.PEM 2048 
Erstellen Sie Diffie-Hellman-Schlüssel

7. Einmal der Diffie-Hellman Der Schlüssel wurde erstellt. Überprüfen.

$ sudo nginx -t $ sudo systemctl neu starten nginx.Service 
Überprüfen Sie die Nginx -Konfiguration

8. Um zu testen, ob Nginx verwendet Http/2.0 Protokoll gibt den folgenden Befehl aus. Das Vorhandensein von H2 Das beworbene Protokoll bestätigt, dass Nginx erfolgreich für die Verwendung von HTTP/2 konfiguriert wurde.0 Protokoll. Alle modernen aktuellen Browser sollten dieses Protokoll standardmäßig unterstützen.

$ openssl s_client -Connect localhost: 443 -NextProtoneg "
Testen Sie Nginx HTTP 2.0 Protokoll

Schritt 3: Installieren Sie PHP 7 Interpreter

NGINX kann mit Dynamic Processing Language Interpreter von PHP verwendet werden, um dynamische Webinhalte mithilfe des FastCGI -Prozessmanagers zu generieren, der durch Installation des PHP-FPM Binärpaket von Ubuntu offiziellen Repositories.

9. Um zu greifen Php7.0 und die zusätzlichen Pakete, mit denen PHP mit dem NGINX -Webserver kommunizieren kann, geben den folgenden Befehl in Ihrer Serverkonsole aus:

$ sudo apt installieren Sie PHP7.0 php7.0-fpm 
Installieren Sie PHP 7 und PHP-FPM für NGIN

10. Einmal der Php7.0 Interpreter wurde erfolgreich auf Ihrem Computer, Start und Überprüfen installiert Php7.0-fpm Dämon durch Ausgabe des folgenden Befehls:

$ sudo systemctl starten Sie Php7.0-fpm $ sudo systemctl Status Php7.0-fpm 
Starten und überprüfen Sie den PHP-FPM-Dienst

11. Die aktuelle Konfigurationsdatei von Nginx ist bereits für die Verwendung konfiguriert PHP FASTCGI Prozessmanager, um dynamische Inhalte serverend.

Der Serverblock, mit dem Nginx PHP Interpreter verwenden kann.

Ort ~ \.Php $ inklusive Snippets/Fastcgi-Php.conf; FASTCGI_PASS UNIX:/Run/PHP/PHP7.0-fpm.Socke;  

Im Folgenden finden Sie einen Screenshot für die Anweisungen, die Sie für die Überzeugung und Änderung benötigen.

Aktivieren Sie PHP FastCGI für Nginx

12. So testen die NGINX -Webserverbeziehung mit PHP FastCGI Process Manager Erstellen Sie einen PHP die Info.Php Testen Sie die Konfigurationsdatei, indem Sie den folgenden Befehl ausgeben, und überprüfen Sie die Einstellungen, indem Sie diese Konfigurationsdatei unter Verwendung der folgenden Adresse besuchen: http: // ip_or Domain/Info.Php.

$ sudo su -c 'echo "" | tee/var/www/html/info.PHP ' 
Erstellen Sie die PHP -Info -Datei Überprüfen Sie PHP FastCGI -Informationen

Überprüfen Sie auch, ob Http/2.0 Das Protokoll wird vom Server durch Auffinden der Zeile beworben $ _Server ['server_protocol'] Blockieren Sie auf PHP -Variablen, wie auf dem folgenden Screenshot dargestellt.

Überprüfen Sie HTTP 2.0 Protokollinfo

13. Um extra zu installieren Php7.0 Module verwenden die APT -Suche php7.0 Befehl, um ein PHP -Modul zu finden und zu installieren.

Versuchen Sie außerdem, die folgenden PHP -Module zu installieren, die für den Fall, dass Sie vorhaben, WordPress oder andere CMS zu installieren.

$ sudo apt installieren Sie PHP7.0-mcrypt PHP7.0-mbstring 
Installieren Sie PHP 7 -Module

14. Um die PHP -zusätzlichen Module zu registrieren, starten Sie einfach neu PHP-FPM Daemon durch Ausgabe des folgenden Befehls.

$ sudo systemctl starten Sie Php7 neu.0-fpm.Service 

Schritt 4: Installieren Sie die MariADB -Datenbank

15. Schließlich, um unsere zu vervollständigen Lemp Stack Wir benötigen die MariADB -Datenbankkomponente, um Website -Daten zu speichern und zu verwalten.

Installieren Mariadb Datenbankverwaltungssystem, indem Sie den folgenden Befehl ausführen und neu starten PHP-FPM Service, um das MySQL -Modul zu verwenden, um auf die Datenbank zuzugreifen.

$ sudo APT Installieren Sie Mariadb-Server Mariadb-Client Php7.0-mysql $ sudo systemctl starten Sie Php7 neu starten.0-fpm.Service 
Installieren Sie Mariadb für Nginx

16. Um die MariADB -Installation zu sichern, führen Sie das vom Binärpaket bereitgestellte Sicherheitsskript aus Ubuntu -Repositories aus, mit dem Sie ein Stammkennwort festlegen, anonyme Benutzer entfernen, die Stammanmeldung remote deaktivieren und die Testdatenbank entfernen können.

Führen Sie das Skript aus, indem Sie den folgenden Befehl ausgeben, und beantworten Sie alle Fragen mit Ja. Verwenden Sie den folgenden Screenshot als Anleitung.

$ sudo mysql_secure_installation 
Sichern Sie die Mariadb -Installation für Nginx

17. So konfigurieren Sie MariADB, damit gewöhnliche Benutzer ohne System auf die Datenbank zugreifen können sudo Privilegien, wechseln Sie zur MySQL -Befehlszeilenschnittstelle mit Root -Privilegien und führen Sie die folgenden Befehle auf MySQL Interpreter aus:

$ sudo mysql mariadb> Verwenden Sie MySQL; Mariadb> aktualisieren user set plugin = "wobei user =" root "; mariadb> bush privileges; mariadb> beenden 
Mariadb -Benutzerberechtigungen

Melden Sie sich schließlich bei der MariADB -Datenbank an und führen Sie einen willkürlichen Befehl ohne Root -Berechtigungen aus, indem Sie den folgenden Befehl ausführen:

$ mysql -u root -p -e 'Datenbanken anzeigen' 
Überprüfen Sie Mariadb -Datenbanken

Das alles! Jetzt hast du eine Lemp Stapel konfiguriert auf Ubuntu 16.10 Und Ubuntu 16.04 Server, auf dem Sie komplexe dynamische Webanwendungen bereitstellen können, die mit Datenbanken interagieren können.