PHP Setup mit Ubuntu 23.10 oder 22.04

php-logo

Diese Anleitung erklärt, wie man PHP und Apache2 auf einem Ubuntu-Betriebssystem installiert und konfiguriert.

Wer eine Webseite erstellt oder betreut, kommt mit serverseitiger Programmierung nur wenig in Kontakt. Content Management Systeme (CMS) wie WordPress, Drupal oder Joomla liefern bereits alles, was man braucht. Dennoch sind Grundkenntnisse in PHP sowie die Funktionsweise von Server und SQL-Datenbank hilfreich. Spätestens, wenn Sie auf dem eigenen Computer eine Testumgebung für die Webseite, z.B. mit XAMPP oder MAMP betreiben, erleichtert Ihnen dies die Konfiguration.

Wir empfehlen für die ersten Gehversuche mit Apache2, MySQL und PHP eine Virtuelle Maschine (VM) von VirtualBox zu verwenden. Hier können Sie hemmungslos ausprobieren und falls Sie zu experimentierfreudig waren, die VM zurücksetzen oder ganz löschen, ohne das eigene Betriebssystem zu beeinträchtigen.

PHP Grundlagen

PHP (rekursives Akronym für PHP: Hypertext Preprocessor) ist eine weit verbreitete Open Source-Skriptsprache, die speziell für die Webprogrammierung geeignet ist. PHP-Skripte laufen auf dem einem Server, mit ihnen werden z. B. Formulardaten gesammelt, dynamische Inhalte für Webseiten generiert oder Cookies gesendet und empfangen.

💡 Exkurs Hypertext Präprozessor: Ein Präprozessor (wörtlich: „Vorverarbeiter“) ist ein Computerprogramm, das Eingabedaten vorbereitet und zur weiteren Bearbeitung an ein anderes Programm weitergibt. PHP kann als Präprozessor für HTML gesehen werden. Hypertext zeichnet sich dadurch aus, dass im „normalen“ Text Links – sogenannte Hyperlinks – eingebettet sind, die (wie Querverweise) zu anderen Textstellen oder zu anderen Dokumenten führen.

Beispiel dynamische Website:

Dateien, die den PHP-Code oder die PHP-Anweisungen enthalten (Quellcode-Dateien), sind auf einem Server gespeichert. Ruft ein Benutzer mit dem Browser (Client) eine Webseite auf, sendet also der Client eine Anfrage an den Server, so setzt diese einen Interpreter (der sich ebenfalls auf dem Server befindet) in Gang, der anhand der PHP-Anweisungen die Webseite mittels HTML erstellt. Die Webseite wird dann vom Server an den Client gesendet, d.h. im Browser des Benutzers angezeigt.

Voraussetzungen

  1. Apache2 installieren: [[Apache2 – Ubuntu 23.10]]
  2. PHP installieren

PHP benötigt ein Server-Programm, das Sie im ersten Schritt installieren müssen. Wir verwenden hier Apache2.

Im zweiten Schritt können Sie optional die Datenbank MySQL installieren. Diese wird z.B. für WordPress und andere CMS benötigt, um Dateien dort abzulegen.

Anschließend installieren Sie dann PHP.

1. Apache2 installieren

Unter Ubuntu finden Sie den Apache2 Server in den Paketquellen. Aktualisieren Sie vor der Installation zunächst Ihr System, in einem Terminal mit dem Befehl

sudo apt update -ysudo apt install apache2 -y

Nach der Installation findet man die Dateien im Verzeichnis /etc/apache2 .

Wir empfehlen, die IP-Adresse, unter der der Server erreichbar ist, auf localhost zu beschränken. Hierzu ändern Sie die Datei /etc/apache2/ports.conf.

Wechseln Sie in einem Terminal in das Verzeichnis apache2 cd /etc/apache2

und öffnen Sie von dort die Datei ports.cnfmit Administratorrechten in einem Editor, z.B.

sudo gedit ports.cnf

oder

sudo nano ports.conf

Ersetzen Sie nun die Zeile

Listen 80

durch die IP-Adresse von localhost:

Listen 127.0.0.1:80

und speichern Sie die Datei und starten den Apache2-Server neu:sudo systemctl restart apache2.service


💡 Exkurs: Nano ist ein Texteditor, der auf allen Linux Betriebssystemen vorhanden ist. Er hat keine eigene Benutzeroberfläche, sondern läuft nach dem Aufruf im Terminal in diesem Terminalfenster. Er ist nur mit der Tastatur zu bedienen, nicht mit der Maus. Sie speichern die hier geöffnete Datei mit Strg + O (Buchstabe O) und bestätigen dann den vorgeschlagenen Dateinamen mit der Eingabetaste. Zum Verlassen des Editors dient die Tastenkombination Strg + X, anschließend befinden Sie sich wieder im „normalen“ Terminal.

Oder mit dem Gnome- Texteditor:

Konfiguration

Details zu Dateistruktur, Modulen und Konfiguration des Apache2-Servers finden Sie in unserem Beitrag:

Apache2 installieren unter Ubuntu 23.10

2. PHP Installation

Hier sind zwei Schritte erforderlich:

  1. PHP installieren
  2. das Apache-Modul für PHP installieren

Die können Sie in einem Schritt tun:

sudo apt install php libapache2-mod-php

Die Funktionalität des Apache2-Servers kann mit einer Vielzahl von Modulen erweitert werden. Auch für PHP ist ein solches Modul (libapache2.mod-php) erforderlich.

Optional: Kommandozeile nutzen

Sie können PHP-Skripte über die Command Line Interface (CLI = „Befehlszeilenschnittstelle“) – also in einem Terminal – ausführen. Dazu müssen Sie zunächst das Paket php-cli installieren:

sudo apt install php-cli

Sie können PHP-Skripte auch ausführen, ohne das Apache-PHP-Modul zu installieren. Dazu müssen Sie das Paket php-cgi mit diesem Befehl installieren:

sudo apt install php-cgi

Um PHP mit MySQL nutzen zu können:

sudo apt install php-mysql

Nach der Installation sollten die Dateien php8.2.conf und php8.2.load im Verzeichnis /etc/apache2/mods-enabled vorhanden sein.

Zum Abschluss müssen Sie den Apache2 Server neu starten:

sudo systemctl restart apache2.service

Die Installation testen

Alle Dateien, die Webseiten und/oder PHP-Scripts enthalten finden Sie im documen-root Verzeichnis, das ist /var/www/html (wenn Sie in der Server-Konfiguration keine Änderungen vorgenommen haben). Die Beispiel-Datei „index.html“ ist bereits vorhanden.

Für einen ersten Test legen Sie eine Datei mit der Endung .php , zum Beispiel phpinfo.php und dem nachstehenden Inhalt an und speichern diese im DocumentRoot- Verzeichnis des Apache2 Webservers.

 // /var/www/html/phpinfo.php
​
<?php
 phpinfo();
?>

Hinweis: Normalerweise enthält die .php– Datei auch ein HTML-Grundgerüst, zum Lernen und Testen ist der Inhalt oben aber ausreichend.

Im Browser erreichen Sie die Seite über die Adresszeile mit

http://hostname/phpinfo.php

Es werden die Werte verschiedener PHP-Konfigurationsparameter angezeigt. „hostname" ist hier „localhost".

Alternativ erstellen Sie ein obligatorisches hello-world-Programm wie folgt:

<!DOCTYPE html>
​
<html lang="en">
​
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello PHP</title>
</head>
​
<body>
<?php
  echo "Hello World!";
?>
</body>
​
</html>

Speichern Sie das Programm als hello.php ebenfalls im Verzeichnis /var/www/html. Der Aufruf im Browser für diese Datei lautet entsprechend: http://localhost/hello.php.

Zugriffsrechte – „permission denied“

Wenn Sie bei dem Versuch, im Verzeichnis /var/www/html eine Datei anzulegen oder die vorhandene index.html zu ändern, eine Fehlermeldung erhalten, so liegt das an fehlenden Zugriffsrechten.

Linux enthält Steuerungsmechanismen, die regeln, wer auf welche Datei oder auf welches Verzeichnis zugreifen darf. Grundsätzlich darf der Eigentümer einer Datei oder eines Verzeichnisses diese lesen und sie verändern. Die Benutzergruppe, der er angehört, darf nur lesen und der Rest der Welt darf gar nichts.

Das Verzeichnis /var/www/html gehört unter Ubuntu dem Benutzer root. Wenn Sie also hier eine neue Datei erstellen möchten, müssen Sie dies mit Administratorrechten tun. Mit Visual Studio Code ist das nur über Umwege möglich und wird auch nicht empfohlen. Andere Editoren wie den Gnome Texteditor oder Nano können Sie als Administrator (root) über ein Terminal starten mit dem Befehl

sudo gedit
oder:
sudo nano

Empfohlene Vorgehensweise

Ändern Sie die Zugriffsrechte für das Verzeichnis in einem Terminal mit den nachstehenden Befehlen.

  1. Ordnen Sie das Verzeichnis der Gruppe „www-data“ zu:
sudo chown -R www-data:www-data /var/www/html

Ersetzen Sie `username` durch ihren Benutzername, den erfahren Sie im Zweifelsfall mit dem Befehl:

whoami

3. Setzen Sie die Zugriffsrechte für Benutzer und Gruppe auf „Lesen, Schreiben und Ausführen“:

sudo chmod -R 775 /var/www/html/


4. Sollte dies noch nicht ausrechen, erweitern Sie die Rechte für alle Benutzer und Gruppen:

sudo chmod -R 777 /var/www/html/

Editor

Wir verwenden zum Erstellen der PHP-Dateien den Editor (oder besser die IDE) Visual Studio Code (VSCode).

Ein Programmierbeispiel:


Online-Tutorials

Ein verständliches und nebenbei auch noch kurzweiliges Tutorial in deutscher Sprache von Axel Pratzner. Die gut lesbare Schrift der Webseite lässt sich im Browser problemlos vergrößern, kein fixierter Header-Bereich oder schwebende Elemente, die dann die halbe Seite verdecken, die Bilder haben einen Alt-Text – vorbildlich! Auch als Video-Kurs auf DVD oder E-Book erhältlich. Sie lernen hier nicht nur PHP, sondern erhalten zusätzlich Einblick in die Zusammenhänge mit den übrigen Bereichen der Webentwicklung. Der Autor der Seite bietet weitere Tutorials zu HTML, JavaScript und Python – und eine Katze gibt es auch ;-).

w3schools: Tutorial in englischer Sprache mit vielen Beispielen einem Online-Editor (Try-It-Yourself), verständlich und auch zum Nachschlagen geeignet, nicht nur für PHP eine Empfehlung.

php-logo

PHP-Dokumentation https://www.php.net/docs.php


Quellen:

Wikipedia: Präprozessor

IONOS: Was ist php?

PHP Dokumentation

AskUbuntu