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

Installation und Einrichtung von Php und Nginx unter Ubuntu 20.04

PHP ist eine Allzweck-Skriptsprache. Es ist vor allem für die Webentwicklung beliebt. Es kann verwendet werden, um dynamische und interaktive Websites zu entwickeln. Es gehörte zu den ersten serverseitigen Sprachen, die in HTML eingebettet werden konnten, wodurch es einfacher wurde, Funktionen zu Webseiten hinzuzufügen, ohne externe Dateien für Daten aufrufen zu müssen. PHP gehört zu den leichter zu erlernenden Programmiersprachen.

Es ist in eine Reihe gängiger Datenbanken integriert, darunter MySQL, PostgreSQL, Oracle, Sybase, Informix und Microsoft SQL Server. Viele beliebte CMS und Frameworks wie WordPress, Magento und Laravel sind in PHP geschrieben.

Zum Zeitpunkt der Erstellung dieses Artikels enthalten die standardmäßigen Ubuntu 20.04-Repositories die PHP 7.4-Version.

Voraussetzungen

Um dieser Anleitung zu folgen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  1. Aktualisierter Ubuntu 20.04-Server, der mit dem Internet verbunden ist
  2. Root-Zugriff auf den Server oder Benutzer mit sudo-Zugriff
  3. Sie sollten mit der Verwendung von Linux-Terminals vertraut sein, um Befehle auszuführen.

Schritte zum Installieren und Konfigurieren von PHP in Ubuntu 20.04

  1. Stellen Sie sicher, dass der Server auf dem neuesten Stand ist
  2. Installieren Sie PHP 7.4 auf dem Server
  3. Installieren von Nginx
  4. Konfiguriere Nginx, um eine PHP-Datei bereitzustellen

1. Stellen Sie sicher, dass der Server auf dem neuesten Stand ist

Bevor Sie fortfahren, stellen Sie sicher, dass unser Server aktualisiert ist. Verwenden Sie diese Befehle, um 1. die Server-Repositories zu aktualisieren, 2. Serverpakete auf die neuesten Versionen zu aktualisieren:

# Update repos
sudo apt update

# Upgrade packages
sudo apt -y upgrade

2. Installieren Sie PHP 7.4 auf dem Server

Da die Standard-Repositories die PHP-Version 7.4 enthalten, installieren wir sie mit diesem Befehl:

sudo apt install php -y

Bestätigen Sie die installierte Version mit dem Befehl php -v :

~$ php -v
PHP 7.4.3 (cli) (built: Aug 13 2021 05:39:12) ( 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

In diesem Setup beabsichtigen wir, PHP-Dateien mit Nginx bereitzustellen. Nginx hat keine integrierte Unterstützung für die Verarbeitung von PHP-Dateien. Wir verwenden PHP-FPM ("fastCGI Process Manager"), um die PHP-Dateien zu handhaben.

Nginx funktioniert nicht, wenn Apache installiert ist und ausgeführt wird. Da wir Nginx verwenden werden, verwenden wir diesen Befehl, um Apache zu entfernen, wenn er in unserem System installiert ist:

$ sudo apt remove apache2 -y

Lassen Sie uns nun php-fpm installieren mit diesem Befehl:

sudo apt install php-fpm -y

Sobald die Installation abgeschlossen ist, wird der FPM-Dienst automatisch gestartet. Der Dienst wird systemd als php7.4-fpm hinzugefügt . Um den Status des Dienstes zu überprüfen, führen Sie Folgendes aus:

$ 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-09-28 16:18:41 UTC; 3min 18s ago
       Docs: man:php-fpm7.4(8)
   Main PID: 56092 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 4710)
     Memory: 7.1M
     CGroup: /system.slice/php7.4-fpm.service
             ├─56092 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─56113 php-fpm: pool www
             └─56114 php-fpm: pool www

Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
Sep 28 16:18:41 ip-172-26-11-229 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Sie sollten die Ausgabe wie oben sehen.

3. Installieren von Nginx

Nachdem PHP und php-fpm im System installiert sind, müssen wir nginx installieren. Mit Nginx können wir einen virtuellen Host einrichten, mit dem wir Datenverkehr von einer Domain bedienen können.

Installieren Sie nginx mit diesem Befehl:

sudo apt install nginx -y

Sobald die Installation abgeschlossen ist, wird Nginx standardmäßig gestartet. Bestätigen Sie, dass es wie erwartet funktioniert, indem Sie seinen Status überprüfen. Sie sollten eine Ausgabe wie diese sehen:

$ 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 Tue 2021-09-28 16:28:30 UTC; 1min 2s ago
       Docs: man:nginx(8)
   Main PID: 56990 (nginx)
      Tasks: 3 (limit: 4710)
     Memory: 3.7M
     CGroup: /system.slice/nginx.service
             ├─56990 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─56991 nginx: worker process
             └─56992 nginx: worker process

Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Starting A high performance web server and a reverse pr>
Sep 28 16:28:30 ip-172-26-11-229 systemd[1]: Started A high performance web server and a reverse pro>

Verwenden Sie diesen Befehl, um zu bestätigen, dass Nginx tatsächlich ausgeführt wird und erreichbar ist:

curl http://server_ip/

Wobei server_ip ist die ip deines server. Wenn Sie aus irgendeinem Grund die öffentliche IP Ihres Servers nicht kennen, verwenden Sie dies, um dies zu überprüfen:

curl -4 icanhazip.com

Sie sollten die Nginx-Standardseite sehen.

4. Konfigurieren Sie Nginx, um eine PHP-Datei bereitzustellen

Jetzt, da wir Nginx auf unserem Server eingerichtet und ausgeführt haben, lassen Sie uns PHP-Dateien bereitstellen. In diesem Beispiel werden wir Nginx konfigurieren, um die PHP-Infoseite bereitzustellen.

Um dies zu erreichen, müssen wir einen virtuellen Host in Nginx einrichten, der Datenverkehr für eine bestimmte Domäne bereitstellt (wir verwenden example.citizix.com ). Damit dies funktioniert, müssen Sie die DNS-Einträge für diese Domain in Ihrem DNS-Host so aktualisieren, dass sie A haben Datensätze verweisen auf diese Domain oder Subdomain. Einzelheiten dazu finden Sie in der Dokumentation Ihres DNS-Anbieters.

Bestätigen Sie mit dem Befehl dig, dass die Domäne korrekt zum Server aufgelöst werden kann:

❯ dig -t A example.citizix.com

; <<>> DiG 9.10.6 <<>> -t A example.citizix.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10212
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;example.citizix.com.       IN  A

;; ANSWER SECTION:
example.citizix.com.    300 IN  A   172.67.197.11

;; Query time: 828 msec
;; SERVER: 192.168.157.227#53(192.168.157.227)
;; WHEN: Tue Sep 28 20:42:05 EAT 2021
;; MSG SIZE  rcvd: 80

Jetzt müssen wir diesen Schritten folgen, damit unser einfaches Skript funktioniert:

  1. Erstellen Sie das Verzeichnis zum Speichern unserer statischen Inhalte (wir verwenden /var/www/example.citizix.com )
    sudo mkdir -p /var/www/example.citizix.com
  2. Stellen Sie sicher, dass der Nginx-Benutzer auf das erstellte Verzeichnis zugreifen kann
    sudo chown -R www-data:www-data /var/www/example.citizix.com
    sudo chmod -R 755 /var/www/example.citizix.com
  3. Fügen Sie eine Indexdatei hinzu /var/www/example.citizix.com/index.php mit Inhalt zum Anzeigen von PHP-Informationen im Verzeichnis (/var/www/example.citizix.com )
    Datei bearbeiten:

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

    Diesen Inhalt hinzufügen:

    <?php
    phpinfo()
    ?>

    Speichern und schließen Sie die Datei.

  4. Erstellen Sie die nginx-Konfiguration im nginx-Standardverzeichnis /etc/nginx/conf.d . 1. Wir erstellen die Datei /etc/nginx/conf.d/example.citizix.com.conf mit dem erforderlichen Inhalt.
    sudo vim /etc/nginx/conf.d/example.citizix.com.conf

Diesen Inhalt hinzufügen:

server {
    listen 80;
    server_name example.citizix.com;

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

    location ~ \.php$ {
        fastcgi_intercept_errors on;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
}

Bestätigen Sie mit diesem Befehl, dass die nginx-Konfiguration korrekt ist:

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jetzt müssen Sie nginx und php-fpm mit diesen Befehlen neu starten:

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

Bestätigen Sie, dass die Dienste aufgerufen wurden:

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

Sie sollten sehen, dass die Dienste erfolgreich neu gestartet wurden!

Wenn alles gut geht, sollten Sie die PHP-Infoseite sehen, wie im Screenshot unten gezeigt:

Das ist alles! Bis zu diesem Punkt konnten wir PHP 7.4 in Ubuntu 20.04 installieren und einfache Dateien mit Nginx bereitstellen.


Ubuntu
  1. Grundlegende PHP 7- und Nginx-Konfiguration unter Ubuntu 16.04 Linux

  2. Einstellen von NTP auf Centos und Ubuntu

  3. Installieren und konfigurieren Sie PHP OPcache auf Ubuntu 20.04

  4. Installation von LLMP (Lighttpd, PHP und MySQL) auf Ubuntu 14.10

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

Installieren von Nginx mit PHP5 (und PHP-FPM) und MySQL-Unterstützung (LEMP) unter Ubuntu 13.04

Installieren von Apache2 mit PHP5- und MySQL-Unterstützung auf Ubuntu 13.04 (LAMP)

Installieren von Nginx mit PHP5- und MySQL-Unterstützung auf Ubuntu 8.10

Installation von Lighttpd mit PHP (PHP-FPM-Modus) und MySQL oder MariaDB auf Ubuntu 15.04

Installation von Lighttpd mit PHP (PHP-FPM-Modus) und MySQL oder MariaDB auf Ubuntu 15.10

Installation und Einrichtung von Plex Media Server auf Ubuntu