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
- Apache2 installieren: [[Apache2 – Ubuntu 23.10]]
- 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.cnf
mit 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:
2. PHP Installation
Hier sind zwei Schritte erforderlich:
- PHP installieren
- 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.
- 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
PHP- Kurs:
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.com
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.