GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren Sie LEMP Stack Nginx, MySQL, PHP unter Ubuntu 22.04

So installieren Sie LEMP Stack Nginx, MySQL, PHP unter Ubuntu 22.04. In dieser Anleitung erfahren Sie, wie Sie Nginx, MySQL 8.0 und PHP 8.1 installieren.

Sie werden auch einige gängige PHP-Erweiterungen installieren und die PHP-Konfigurationen anpassen. Abschließend sichern Sie Ihr Setup mit Let’s Encrypt SSL und konfigurieren die HTTPS-Umleitung.

Dieses Setup wurde in der Google Cloud getestet, sodass es auf allen Cloud-Hosting-Diensten wie AWS, Azure oder jedem VPS oder jedem dedizierten Server mit Ubuntu 22.04 funktioniert.

Voraussetzungen

  • Root-Zugriff auf Ihren Server oder ein Benutzer mit sudo-Berechtigungen.
  • Domain verwies auf Ihre Server-IP, um Let’sEncrypt SSL zu installieren

Schritt 1:Setup-Initialisierung

Beginnen Sie damit, die Pakete mit dem folgenden Befehl auf die neueste verfügbare Version zu aktualisieren.

sudo apt update
sudo apt upgrade

Sobald Sie das Setup aktualisiert haben, können Sie das Setup starten.

Schritt 2:Nignx installieren

Installieren Sie Nginx mit dem folgenden Befehl.

sudo apt install nginx

Dadurch wird nginx installiert und alle erforderlichen Abhängigkeiten.

Schritt 3:Firewall einrichten

Jetzt können Sie eine unkomplizierte Firewall (UFW) mit Nginx einrichten, um den öffentlichen Zugriff auf Standard-Webports für HTTP zuzulassen und HTTPS

sudo ufw app list

Sie sehen alle aufgelisteten Anwendungen.

Output
Available applications:
   Nginx Full
   Nignx HTTP
   Nginx HTTPS
   OpenSSH
  • Nginx-HTTP :Dieses Profil öffnet Port 80 (normaler, unverschlüsselter Webverkehr)
  • Nginx voll :Dieses Profil öffnet beide Ports 80 (normaler, unverschlüsselter Webverkehr) und Port 443 (TLS/SSL-verschlüsselter Datenverkehr)
  • Nginx-HTTPS :Dieses Profil öffnet nur Port 443 (TLS/SSL-verschlüsselter Datenverkehr)
  • OpenSSH :Dieses Profil öffnet Port 22 für den SSH-Zugriff.

Wenn Sie SSL nicht verwenden möchten, müssen Sie nur das Nginx-HTTP-Profil aktivieren.

Jetzt aktivieren wir Nginx Full.

sudo uff allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Mit diesem Befehl können Sie den Status von UFW anzeigen.

sudo ufw status

Sie sehen die Ausgabe wie folgt.

Output
Status: active
 To                         Action      From
 --                         ------      ----
 Nginx Full                 ALLOW       Anywhere                  
 OpenSSH                    ALLOW       Anywhere                  
 Nginx Full (v6)            ALLOW       Anywhere (v6)             
 OpenSSH (v6)               ALLOW       Anywhere (v6)

Schritt:4 Überprüfen Sie die Nginx-Installation

Da wir Nginx in Schritt 2 installiert haben, sollte es automatisch gestartet werden und bereits betriebsbereit sein.

Jeder Prozess in Nginx wird mit dem systemctl verwaltet Befehl. Überprüfen Sie den Status von Nginx mit dem folgenden Befehl.

sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 05:36:49 UTC; 44s ago
       Docs: man:nginx(8)
    Process: 10272 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCC>
    Process: 10273 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 10274 (nginx)
      Tasks: 3 (limit: 1151)
     Memory: 5.3M
        CPU: 35ms
     CGroup: /system.slice/nginx.service

Jetzt haben wir Nignx installiert und die Firewall konfiguriert.

Schritt 5:MySQL installieren

In Ubuntu 22.04 ist MySQL 8 standardmäßig in den Jammy Jellyfish-Repositorys enthalten, sodass Sie es einfach mit dem apt install installieren können Befehl.

sudo apt install mysql-server

Sobald die Installation abgeschlossen ist, wird der MySQL-Dienst automatisch gestartet. Geben Sie Folgendes ein, um zu überprüfen, ob der MySQL-Server ausgeführt wird:

sudo service mysql status

Die Ausgabe sollte zeigen, dass der Dienst aktiviert ist und ausgeführt wird:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-05-04 00:38:45 UTC; 11s ago
    Process: 13836 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, statu>
   Main PID: 13844 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1151)
     Memory: 351.4M
        CPU: 1.043s
     CGroup: /system.slice/mysql.service
             └─13844 /usr/sbin/mysqld

Überprüfen Sie die MySQl-Version mit dem folgenden Befehl.

sudo mysql -V
Output
mysql  Ver 8.0.28-0ubuntu4 for Linux on x86_64 ((Ubuntu))

Schritt 6:Sichern Sie MySQL

Die MySQL-Installation wird mit einem Skript namens mysql_secure_installation geliefert damit können Sie die Sicherheit des MySQL-Servers einfach verbessern.

sudo mysql_secure_installation

Sie werden aufgefordert, den VALIDATE PASSWORD PLUGIN zu konfigurieren die verwendet wird, um die Stärke der Passwörter der MySQL-Benutzer zu testen und die Sicherheit zu verbessern.

Drücken Sie y wenn Sie das Plugin zur Passwortvalidierung oder einen anderen Schlüssel einrichten möchten, um zum nächsten Schritt zu gelangen.

Es gibt drei Stufen der Kennwortvalidierungsrichtlinie:niedrig, mittel und stark.

Geben Sie 2 für die Bestätigung des starken Passworts ein.

Bei der nächsten Eingabeaufforderung werden Sie aufgefordert, ein Passwort für den MySQL-Root-Benutzer festzulegen.

Wenn Sie das Plugin zum Überprüfen des Passworts einrichten, zeigt Ihnen das Skript die Stärke Ihres neuen Passworts an. Geben Sie y ein um das Passwort zu bestätigen.

Als Nächstes werden Sie aufgefordert, den anonymen Benutzer zu entfernen, den Zugriff des Root-Benutzers auf den lokalen Computer einzuschränken, die Testdatenbank zu entfernen und die Berechtigungstabellen neu zu laden. Sie sollten y beantworten auf alle Fragen.

Schritt 7:PHP installieren

Standardmäßig hat Ubuntu 22.04 das neueste PHP 8.1-Repository hinzugefügt. Sie können also PHP mit dem folgenden Befehl installieren.

sudo apt install php8.1-fpm php8.1 php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-intl php8.1-bcmath unzip -y

Sobald PHP installiert ist, können Sie die Version mit dem folgenden Befehl überprüfen.

php -v
Output
PHP 8.1.5 (cli) (built: Apr  7 2022 17:46:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.5, Copyright (c), by Zend Technologies

Schritt 8:PHP konfigurieren

Jetzt konfigurieren wir PHP für Webanwendungen, indem wir einige Werte in php.ini ändern Datei.

Für PHP 8.1 mit Nginx der php.ini Der Speicherort befindet sich im folgenden Verzeichnis.

sudo nano /etc/php/8.1/fpm/php.ini

Drücken Sie F6 für die Suche im Editor und aktualisieren Sie die folgenden Werte für eine bessere Leistung.

upload_max_filesize = 32M 
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

Nachdem Sie Ihre PHP-Einstellungen geändert haben, müssen Sie Ihr PHP-FPM neu starten, damit die Änderungen wirksam werden.

sudo service php8.1-fpm restart

Schritt 9:Nginx konfigurieren

Nginx-Standardkonfiguration deaktivieren.

sudo rm -rf /etc/nginx/sites-enabled/default
sudo rm -rf /etc/nginx/sites-available/default

Erstellen Sie Website-Verzeichnisse.

sudo mkdir -p /var/www/html/domainname/public

Richten Sie die richtigen Berechtigungen ein.

sudo chmod -R 755 /var/www/html/domainname
sudo chown -R www-data:www-data /var/www/html/domainname

Erstellen Sie eine neue Serverblockkonfiguration.

sudo nano /etc/nginx/sites-available/domainname.conf

Fügen Sie die folgenden Konfigurationen in die neue Datei ein.

server {
    listen 80;
    listen [::]:80;

    server_name yourdomainname.com www.yourdomainname.com;

    root /var/www/html/domainname/public;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

Aktivieren Sie die neue Konfiguration.

sudo ln -s /etc/nginx/sites-available/domainname.conf /etc/nginx/sites-enabled/domainname.conf

Schritt 10:Let’s Encrypt SSL installieren

HTTPS ist ein Protokoll zur sicheren Kommunikation zwischen einem Server (Instanz) und einem Client (Webbrowser). Aufgrund der Einführung von Let’s Encrypt, das kostenlose SSL-Zertifikate bereitstellt, wird HTTPS von allen angenommen und schafft auch Vertrauen für Ihr Publikum.

sudo apt install python3-certbot-nginx

Jetzt haben wir Certbot von Let’s Encrypt für Ubuntu 22.04 installiert, führen Sie diesen Befehl aus, um Ihre Zertifikate zu erhalten.

sudo certbot --nginx --agree-tos --redirect -m [email protected] -d domainname.com -d www.domainname.com

Dieser Befehl installiert Free SSL, konfiguriert die Umleitung zu HTTPS und startet den Nginx-Server neu.

Schritt 11:SSL-Zertifikat erneuern

Von Let’s Encrypt bereitgestellte Zertifikate sind nur 90 Tage gültig, sodass Sie sie häufig erneuern müssen. Testen wir also die Erneuerungsfunktion mit dem folgenden Befehl.

sudo certbot renew --dry-run

Dieser Befehl testet den Ablauf des Zertifikats und konfiguriert die automatische Verlängerungsfunktion.

Schritt:12:Testen Sie das Setup

Sobald Sie die erforderlichen Schritte ausgeführt haben, können Sie eine neue Test-PHP-Datei in Ihrem Webverzeichnis erstellen.

sudo nano /var/www/html/domainname/public/info.php

Fügen Sie den folgenden Code in die Datei ein.

<?php phpinfo();

Speichern Sie die Datei.

Überprüfen Sie nun Ihren Domainnamen mit dem info.php in der URL (domainname.com/info.php ).

Sie werden sehen, dass Ihre Domain auf HTTPS umgeleitet wurde, und die PHP-Informationsdetails sehen.

Steigern Sie Ihre Linux-Administrationskarriere mit einem abgeschlossenen Schulungskurs und bekommen Sie Ihren Traumjob.

Schlussfolgerung

Jetzt haben Sie gelernt, wie Sie den LEMP-Stack auf Ubuntu 22.04 mit Let’sEncrypt SSL installieren.

Vielen Dank für Ihre Zeit. Wenn Sie auf ein Problem oder Feedback stoßen, hinterlassen Sie bitte unten einen Kommentar.


Linux
  1. So installieren Sie LEMP Stack (Nginx, MySQL, PHP v7) unter CentOS 7

  2. So installieren Sie Nginx mit PHP und MySQL (LEMP Stack) unter Ubuntu 18.04

  3. So installieren Sie LEMP auf Ubuntu 18.04

  4. So installieren Sie LEMP Stack Nginx, MySQL, PHP unter Debian 11

  5. So installieren Sie den LEMP-Stack unter Ubuntu 18.04

So installieren Sie Nginx, MySQL, PHP (LEMP) unter Arch Linux

So installieren Sie Nginx, MySQL und PHP (LEMP) auf einem Ubuntu 15.04-Server

So installieren Sie WordPress auf einem Nginx LEMP-Stack mit Ubuntu 14.04

So installieren Sie LEMP (Linux, Nginx, MySQL, PHP) auf einem Ubuntu 14.04 LTS Cloud Server

So installieren Sie Nginx, MySQL, PHP (LEMP) Stack auf einem Debian 8.3 Cloud Server

So installieren Sie den Stapel Apache, MySQL, PHP (LAMP) unter Ubuntu 16.04