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

Anleitung zum Installieren und Einrichten von PHP und Nginx (LEMP) unter Debian 11

PHP ist eine Allzweck-Skriptsprache, die auf die Webentwicklung ausgerichtet ist. Es ist eine der beliebtesten Programmiersprachen für das Web. Beliebte Tools wie WordPress werden mit PHP codiert. Auch große Unternehmen wie Facebook nutzen PHP stark.

Nginx ist ein Webserver, der auch als Reverse-Proxy, Load-Balancer, Mail-Proxy und HTTP-Cache verwendet werden kann. Es begann als Webserver, der auf maximale Leistung und Stabilität ausgelegt war. Nginx hat seit seiner Veröffentlichung aufgrund seiner geringen Ressourcennutzung und seiner Fähigkeit, auf minimaler Hardware problemlos zu skalieren, an Popularität gewonnen. Nginx zeichnet sich durch die schnelle Bereitstellung statischer Inhalte aus und ist darauf ausgelegt, dynamische Anfragen an andere Software weiterzuleiten, die für diese Zwecke besser geeignet ist.

Verwandte Inhalte

  • So installieren Sie den Apache PHP 7.4 (LAMP) Stack auf Rocky Linux/Centos 8

Inhaltsverzeichnis

  1. Sicherstellen, dass der Server auf dem neuesten Stand ist
  2. Installation von PHP unter Debian 11
  3. Installieren von Nginx unter Debian 11
  4. Installation von php-fpm in Debian 11
  5. Eine einfache Site erstellen und einen virtuellen Host konfigurieren
  6. Testen der Konfiguration

1. Sicherstellen, dass der Server auf dem neuesten Stand ist

Bevor Sie fortfahren, sollten Sie immer sicherstellen, dass der Server auf dem neuesten Stand ist. Verwenden Sie diese Befehle, um dies zu erreichen

sudo apt update
sudo apt upgrade -y

2. Installation von PHP unter Debian 11

PHP ist in den Standard-Repositorys von Debian 11 verfügbar. Die neueste Version von PHP zum Zeitpunkt des Schreibens dieses Blogs ist PHP 7.4.

Installieren Sie PHP und einige gängige Pakete mit diesem Befehl:

sudo apt install -y \
    php \
    php-common \
    php-cli

Überprüfen Sie die installierte Version von PHP

$ apt-cache policy php
php:
  Installed: 2:7.4+76
  Candidate: 2:7.4+76
  Version table:
 *** 2:7.4+76 500
        500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

Überprüfen Sie die installierte PHP-Version mit diesem Befehl:

$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies

3. Nginx unter Debian 11 installieren

Wir werden Nginx verwenden, um den PHP-Inhalt bereitzustellen. Nginx passt als stabiler Hochleistungs-Webserver und mit sehr geringem Ressourcenverbrauch perfekt zu PHP-FPM. Nginx hat eine asynchrone Architektur, die viel skalierbarer ist und auf Ereignissen basiert.

Nginx ist in den standardmäßigen Debian 11-Repositorys verfügbar. Installieren Sie es mit diesem Befehl:

sudo apt install -y nginx

Bestätigen Sie das installierte nginx

$ apt-cache policy nginx
nginx:
  Installed: 1.18.0-6.1
  Candidate: 1.18.0-6.1
  Version table:
 *** 1.18.0-6.1 500
        500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

4. Installation von PHP FPM in Debian 11

PHP-FPM (ein Akronym für FastCGI Process Manager) ist eine äußerst beliebte alternative PHP (Hypertext Processor)-FastCGI-Implementierung. PHP-FPM ist die beliebteste alternative Implementierung von PHP FastCGI. Es hat zusätzliche Funktionen, die für stark frequentierte Websites wirklich nützlich sind. Bei Verwendung von Nginx mit PHP-FPM wird die Leistung auf der Ebene des Speicherverbrauchs verbessert.

PHP wird bei Verwendung von PHP-FPM als separater Dienst ausgeführt. Durch die Verwendung dieser PHP-Version als Sprachinterpreter werden Anfragen über einen TCP/IP-Socket verarbeitet; sodass der Nginx-Webserver nur die HTTP-Anfragen verarbeitet und PHP-FPM den PHP-Code interpretiert. Die Tatsache, dass es zwei getrennte Dienste gibt, ist der Schlüssel zur Steigerung der Effizienz.

Installieren Sie php-fpm mit diesem Befehl:

sudo apt install -y php-fpm

Der Dienst wird standardmäßig gestartet. Überprüfen Sie seinen Status mit diesem Befehl:

$ sudo systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-12-11 12:39:08 UTC; 58s ago
       Docs: man:php-fpm7.4(8)
    Process: 1597314 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
   Main PID: 1597311 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4626)
     Memory: 9.2M
        CPU: 48ms
     CGroup: /system.slice/php7.4-fpm.service
             ├─1597311 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─1597312 php-fpm: pool www
             └─1597313 php-fpm: pool www

Dec 11 12:39:08 ip-10-2-40-122 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Dec 11 12:39:08 ip-10-2-40-122 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

5. Erstellen einer einfachen Site und Konfigurieren eines virtuellen Hosts

Mit Nginx können Sie mehrere Sites mithilfe virtueller Hosts bedienen. Das Konzept der virtuellen Hosts ermöglicht mehr als eine Website auf einem System oder Webserver. Die Server werden durch ihren Hostnamen unterschieden. Besucher der Website werden anhand des Hostnamens oder der IP-Adresse an den richtigen virtuellen Host geleitet. Virtuelles Hosting ermöglicht es Unternehmen, die sich einen Server teilen, um jeweils ihre eigenen Domainnamen zu haben.

In diesem Beispiel verwenden wir die Domäne site1.citizix.com für den virtuellen Host, es steht Ihnen jedoch frei, die Domäne Ihrer Wahl zu verwenden. Bitte beachten Sie, dass der DNS für die zu verwendende Domain bereits so konfiguriert sein sollte, dass er auf die IP-Adresse des Servers zeigt. Bestätigen Sie dies mit:

dig -t A site1.citizix.com

Erstellen eines Verzeichnisses und Hinzufügen von Beispielinhalten

Die Standardseite von nginx ist als standardmäßiger virtueller Host konfiguriert, der Inhalte von /var/www/html bereitstellt. Es ist eine bewährte Methode, das Verzeichnis Ihrer Website im Verzeichnis /var/www zu erstellen, da es eine bewährte Methode ist, von dort aus zu dienen.

Lassen Sie uns mit dem folgenden Befehl ein Verzeichnis für unsere Site erstellen:

sudo mkdir /var/www/site1.citizix.com

Lassen Sie uns eine einfache index.php erstellen Seite, die von unserer Website bereitgestellt werden soll. Sie müssen vim installiert haben, damit dies funktioniert, wenn nicht, verwenden Sie diesen Befehl:

sudo apt install -y vim

Bearbeiten Sie die Datei:

sudo vim /var/www/site1.citizix.com/index.php

Inhalt zur Datei hinzufügen:

<?php phpinfo(); ?>

Erstellen eines virtuellen Hosts (Serverblöcke)

Ein Nginx-Serverblock kann verwendet werden, um Konfigurationsdetails zu kapseln und mehr als eine Domain auf einem einzelnen Server zu hosten. Wir werden einen virtuellen Host für unsere Site erstellen (site1.citizix.com).

Konfigurationen für virtuelle Nginx-Hosts werden im Verzeichnis /etc/nginx/conf.d/ gespeichert . Lassen Sie uns eine Konfiguration für unsere Site erstellen:

sudo vim /etc/nginx/conf.d/site1.citizix.com.conf

Fügen Sie den folgenden Inhalt hinzu

server {
    listen 80;
    server_tokens off;
    client_max_body_size 100M;
    server_name site1.citizix.com;

    access_log /var/log/nginx/site1.citizix.com.log;
    error_log  /var/log/nginx/site1.citizix.com.log;

    root /var/www/site1.citizix.com;
    index index.php;

    if ($host !~* ^(site1.citizix.com)$) {
        return 444;
    }

    location / {
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Lassen Sie uns den nginx- und php-fpm-Dienst neu starten, damit die Konfiguration angewendet wird

sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx

6. Testen der Konfiguration

Um die Konfiguration zu testen, öffnen Sie Ihren Browser und laden Sie die von Ihnen eingerichtete Domain. In meinem Fall ist es http://site1.citizix.com. Sie sollten die PHP-Infoseite sehen.

Wenn Sie Ihre DNS-Einstellungen noch nicht konfiguriert haben oder einfach nicht möchten, dass die Website live geht, können Sie die Hosts-Datei Ihres Computers ändern. Verwenden Sie dazu den folgenden Befehl in der CLI Ihres lokalen Computers

sudo vim /etc/hosts

Fügen Sie dann die IP-Adresse Ihres tatsächlichen Servers hinzu, gefolgt von dem Domänennamen, den Sie konfigurieren, zum Beispiel:

# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com

Jetzt sollten Sie die Datei speichern und über einen Webbrowser darauf zugreifen können.

Schlussfolgerung

Virtuelle Nginx-Hosts oder server Blöcke sind eine großartige Möglichkeit, zusätzliche Websites zu demselben Ursprungsserver hinzuzufügen. Die Anzahl der Konfigurationsmöglichkeiten für eine bestimmte Site ist nahezu unbegrenzt, wenn Sie damit beginnen, die Konfigurationsdatei des virtuellen Hosts zu ändern, um sie an die spezifischen Anforderungen Ihrer Site anzupassen.

In dieser Anleitung haben wir gelernt, wie man einen virtuellen Host einrichtet, um PHP-Inhalte in Debian 11 bereitzustellen.


Debian
  1. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter Ubuntu 20.04

  2. So installieren und konfigurieren Sie PHP und Apache (LAMP-Stack) unter Debian 11

  3. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter Rocky Linux/Alma Linux 8

  4. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter OpenSUSE Leap 15.3

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

So installieren Sie Nginx, MariaDB, PHP (LEMP-Stack) unter Debian 9

So installieren Sie den LEMP-Stack unter Debian 10

So installieren Sie Nginx, MariaDB, PHP (LEMP Stack) unter Debian 11

So installieren und konfigurieren Sie Jenkins in Debian 11

So installieren Sie phpBB mit LEMP (Nginx, MariaDB und PHP) unter Debian 11 Bullseye

So installieren Sie Nginx und PHP unter Debian 10