Voraussetzungen

- Debian-Server mit Root-Zugriff oder einem Benutzer mit `sudo`-Rechten. - Internetverbindung für das Herunterladen der Pakete.

Schritt-für-Schritt-Anleitung

1. System aktualisieren

Aktualisiere zunächst die Paketlisten und installiere verfügbare Updates:

$> sudo apt update sudo apt upgrade -y 

2. Apache2 Webserver installieren

Installiere den Apache2-Webserver:

$> sudo apt install apache2 -y 

Überprüfung:

- Öffne einen Webbrowser und navigiere zu `http://deine_server_ip`. Du solltest die Apache2-Standardseite sehen.

3. PHP und benötigte Module installieren

Installiere PHP sowie die Module für MariaDB und SQLite3:

$> sudo apt install php libapache2-mod-php php-mysql php-sqlite3 -y 

und das Apache2-Modul aktivieren

$> sudo a2enmod php8.2
$> sudo systemctl restart apache2

Überprüfung:

- Erstelle eine PHP-Info-Datei:

$>
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

- Rufe `http://deine_server_ip/info.php` im Browser auf. Die PHP-Informationsseite sollte angezeigt werden.

Wichtig: Lösche die `info.php`-Datei nach der Überprüfung aus Sicherheitsgründen:

$> sudo rm /var/www/html/info.php 

4. MariaDB installieren

Installiere den MariaDB-Datenbankserver:

$> sudo apt install mariadb-server mariadb-client -y 

Sicherheitseinrichtung:

Führe das Sicherheitskonfigurationsskript aus:

$> sudo mysql_secure_installation 

Während der Einrichtung:

- Setze ein root-Passwort. - Entferne anonyme Benutzer. - Verbiete den Root-Login über das Netzwerk. - Entferne die Testdatenbank. - Lade die Berechtigungstabellen neu.

5. SQLite3 installieren

Falls nicht bereits durch PHP installiert, installiere SQLite3:

$> sudo apt install sqlite3 -y 

6. Apache2 neu starten

Starte Apache2 neu, um die Änderungen zu übernehmen:

$> sudo systemctl restart apache2 

7. Firewall konfigurieren (optional)

Erlaube HTTP- und HTTPS-Verkehr, wenn eine Firewall aktiv ist:

$> sudo ufw allow in „Apache Full“ 

8. Zusätzliche PHP-Module installieren (optional)

Je nach Bedarf können weitere PHP-Module installiert werden:

$> sudo apt install php-curl php-gd php-zip php-xml php-mbstring -y 

Starte Apache2 nach der Installation neu:

$> sudo systemctl restart apache2 

(Optional) Web-Verzeichnis als Unterverzeichnis eines vorhandenen Nutzers

Das gewünschte Verzeichnis anlegen und Rechte zuteilen:

sudo mkdir /home/user/www
sudo chown -R www-data:www-data /home/user/www
sudo chmod -R 755 /home/user/www

Apache-Konfiguration überprüfen:

sudo nano /etc/apache2/sites-available/000-default.conf

und folgenden Inhalt dort einstellen:

<VirtualHost *:80>
    DocumentRoot /home/user/www
    <Directory /home/user/www>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Danach Apache2 neu laden

sudo systemctl restart apache2

Überprüfen der Benutzerberechtigungen im home-Verzeichnis

sudo chmod 755 /home/su0359

Jetzt sollte die Seite aufrufbar sein.