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:
- Aktualisierter Ubuntu 20.04-Server, der mit dem Internet verbunden ist
- Root-Zugriff auf den Server oder Benutzer mit sudo-Zugriff
- 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
- Stellen Sie sicher, dass der Server auf dem neuesten Stand ist
- Installieren Sie PHP 7.4 auf dem Server
- Installieren von Nginx
- 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:
- Erstellen Sie das Verzeichnis zum Speichern unserer statischen Inhalte (wir verwenden
/var/www/example.citizix.com
)sudo mkdir -p /var/www/example.citizix.com
- 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
- 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.
- 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.