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

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

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

  • Wie man PHP und Nginx (LEMP) auf OpenSUSE Leap 15.3 installiert und einrichtet
  • So installieren Sie den Apache PHP 7.4 (LAMP) Stack auf Rocky Linux/Centos 8
  • Wie man PHP und Nginx (LEMP) unter Debian 11 installiert und einrichtet
  • Wie man PHP und Apache (LAMP-Stack) unter Debian 11 installiert und einrichtet

Inhaltsverzeichnis

  1. Sicherstellen, dass der Server auf dem neuesten Stand ist
  2. Installation von PHP auf Ubuntu 20.04
  3. Installieren von Nginx auf Ubuntu 20.04
  4. Installation von php-fpm in Ubuntu 20.04
  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 auf Ubuntu 20.04

PHP ist in den standardmäßigen Ubuntu 20.04-Repositorys 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+75
  Candidate: 2:7.4+75
  Version table:
 *** 2:7.4+75 500
        500 http://us-west-2.ec2.archive.ubuntu.com/ubuntu focal/main amd64 Packages
        100 /var/lib/dpkg/status

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

$ php -v
PHP 7.4.3 (cli) (built: Nov 25 2021 23:16:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

3. Nginx unter Ubuntu 20.04 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 Ubuntu-Repos 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-0ubuntu1.2
  Candidate: 1.18.0-0ubuntu1.2
  Version table:
 *** 1.18.0-0ubuntu1.2 500
        500 http://us-west-2.ec2.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1.17.10-0ubuntu1 500
        500 http://us-west-2.ec2.archive.ubuntu.com/ubuntu focal/main amd64 Packages

4. Installation von PHP FPM in Ubuntu 20.04

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 Tue 2021-12-14 20:52:23 UTC; 9s ago
       Docs: man:php-fpm7.4(8)
    Process: 40390 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/po>
   Main PID: 40387 (php-fpm7.4)
     Status: "Ready to handle connections"
      Tasks: 3 (limit: 4631)
     Memory: 6.7M
     CGroup: /system.slice/php7.4-fpm.service
             ├─40387 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─40388 php-fpm: pool www
             └─40389 php-fpm: pool www

Dec 14 20:52:23 ip-10-2-40-248 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Dec 14 20:52:23 ip-10-2-40-248 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Verwenden Sie diesen Befehl, um php-fpm beim Booten zu aktivieren:

sudo systemctl status php7.4-fpm

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 Website 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 Ubuntu 20.04 bereitzustellen.


Ubuntu
  1. So installieren Sie OpenLiteSpeed ​​und PHP auf Ubuntu

  2. So installieren und konfigurieren Sie PHP und Apache (LAMP-Stack) unter Ubuntu 20.04

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

  4. So installieren Sie LEMP auf Ubuntu 18.04

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

So installieren Sie Nginx, MySQL und PHP (LEMP) unter Ubuntu 20.04

So installieren und konfigurieren Sie Nginx in Ubuntu 20.04 und Ubuntu 21.04

So installieren Sie LEMP unter Ubuntu 15.10

So installieren Sie LEMP auf Ubuntu 16.04

So installieren und richten Sie Yii PHP Framework unter Ubuntu Linux ein

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