Neues aus Nerdistan
Ich möchte auf meinem kleinen Linux-Laptop gerne XAMPP als lokalen Webserver einrichten. Es geht mit um eine Testumgebung für die Genealogie-Software webtrees, die allerdings mindestens die PHP-Version 8.3 benötigt. Die letzte veröffentlichte XAMPP-Version von Apachefriends stammt von Ende 2023, und sie installiert nur PHP-Version 8.2.
Und die Installations-Software von XAMPP gibt es nicht mehr in den Repositories oder bei Flatpak. Bei Sourceforge findet sich für Linux nur die Version 8.2.12. Diese lässt sich nur widerborstig installieren. Die Routine hat einen langen Hänger nach 73 % Installation, vermutlich stilles Warten auf einen Timeout. Der Portkonflikt durch die bereits vorhandene Apache2-Version wird nicht automatisch behoben. Irgendwie taugt das so nichts. Erstmal rufe ich das Uninstall-Script für XAMPP unter /opt/lampp auf, das auch zügig durchläuft.
Gibt es denn nicht ein brauchbares, noch dazu einfaches Script zur Einrichtung eines lokalen Webservers für Linux Mint 22.3 als XAMPP-Ersatz? Immerhin verwendet XAMPP nur Standardkomponenten von Linux. Allerdings mit unzähligen Optionen. Ich beauftrage Duck.ai, mir ein solches Script bzw. mehrere zum Installieren, Starten, Stoppen und Deinstallieren zu erstellen, mit folgendem String:
Prompt von Duck.ai:
Bitte erstelle ein Script für einen vollständigen Webserver auf Linux MInt 22.3 mit Apache, Mariadb, Perl und PHP, jeweils die neueste Version, mit allen Optionen oder Erweiterungen, auch php-intl, sowie phpmyadmin. Der Webserver darf nur lokale Zugriffe zulassen. Das Script soll eine Fehlerbehandlung ermöglichen. Zusätzlich bitte Scripte zum Einschalten, zum Ausschalten und zur Deinstallation des Webservers.
Script für Linux Mint 22.3 als XAMPP-Ersatz:
#!/bin/bash
error_exit() {
echo „Fehler: $1“
exit 1
}
# Update und Upgrade des Systems
echo „System aktualisieren…“
sudo apt update && sudo apt upgrade -y || error_exit „Update/Upgrade fehlgeschlagen.“
# Installation der benötigten Pakete
echo „Pakete installieren…“
sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-intl perl php-mbstring php-zip php-gd php-json php-curl -y || error_exit „Installation der Pakete fehlgeschlagen.“
# Apache Konfiguration für lokalen Zugriff (nur localhost)
echo „Apache Konfiguration einstellen…“
if ! grep -q „Require local“ /etc/apache2/apache2.conf; then
echo „
Options Indexes FollowSymLinks
AllowOverride All
Require local
“ | sudo tee -a /etc/apache2/apache2.conf || error_exit „Fehler beim Hinzufügen zur Apache-Konfiguration.“
fi
# Starten von Apache und MariaDB
echo „Starte Apache und MariaDB…“
sudo systemctl start apache2 && sudo systemctl start mariadb || error_exit „Fehler beim Starten der Dienste.“
# Sicherstellen, dass die Dienste beim Booten starten
sudo systemctl enable apache2 && sudo systemctl enable mariadb || error_exit „Fehler beim Aktivieren der Dienste.“
# MariaDB sichern (z.B. root Passwort setzen)
echo „MariaDB konfigurieren…“
sudo mysql_secure_installation || error_exit „Fehler bei der MariaDB-Konfiguration.“
# Installation von phpMyAdmin
echo „phpMyAdmin installieren…“
sudo apt install phpmyadmin -y || error_exit „Installation von phpMyAdmin fehlgeschlagen.“
# phpMyAdmin in Apache einbinden
echo „Konfiguriere phpMyAdmin für Apache…“
echo „Include /etc/phpmyadmin/apache.conf“ | sudo tee -a /etc/apache2/apache2.conf || error_exit „Fehler beim Hinzufügen der phpMyAdmin-Konfiguration zu Apache.“
# Beispiel für eine PHP-Datei erstellen
echo „Erstelle PHP-Testdatei…“
echo „“ | sudo tee /var/www/html/info.php || error_exit „Fehler beim Erstellen der PHP-Testdatei.“
# Berechtigungen für /var/www/html festlegen
echo „Berechtigungen festlegen…“
sudo chown -R www-data:www-data /var/www/html || error_exit „Fehler beim Festlegen der Berechtigungen.“
sudo chmod -R 755 /var/www/html || error_exit „Fehler beim Ändern der Berechtigungen.“
# Apache neu starten, um Änderungen zu übernehmen
echo „Apache neu starten…“
sudo systemctl restart apache2 || error_exit „Fehler beim Neustarten von Apache.“
echo „Die Installation ist abgeschlossen! Besuchen Sie:“
echo „- http://localhost/info.php, um die PHP-Informationen anzuzeigen.“
echo „- http://localhost/phpmyadmin, um phpMyAdmin zu nutzen.“
Ergebnis
Das Script wird in üblicher Weise ausführbar gemacht und läuft dann problemlos durch. Der Aufruf von localhost im Browser zeigt den Informationstext zu Apache2, der von localhost/info.php ergibt Version 8.36, also die Standardversion unter Ubuntu 24.04.
Per localhost/phpmyadmin lässt sich mühelos (Benutzer root und Kennwort eingeben) eine neue noch leere Datenbank meine_db anlegen.
Einrichten von Webtrees
Nun erstelle ich einen Ordner wt in /var/www/html/wt, achte auf die Rechte und Gruppenzugehörigkeit zu www-data. Ich öffne den Ordner mit root-Rechten und kopiere webtrees als zip-datei hinein, entpacke sie. Über den Aufruf von localhost/wt wird webtrees in typischer Weise installiert. Der GEDCOM-Import gelingt danach auch, das Häkchen bei den Mediendateien setzen, und alle Mediendateien händisch in den Ordner /var/www/html/wt/data/media kopieren. Vermutlich müssen vorher die Rechte von data und media auf www-data bzw. root gesetzt werden, damit es möglich ist.
Kommentar
Das hat alles erstaunlich einfach funktioniert, ein AI-generiertes Script für Linux Mint 22.3 als XAMPP-Ersatz. Ich hätte auch andere AI-Engines wie Mistral benutzen können. Die Scripts unterscheiden sich jeweils nur in Nuancen. Auf die Frage nach den Quellen bleiben sie allerdings stumm oder antworten ausweichend. Gut, das hier ist basales Linux-Scripting, kein freies Programmieren einer Anwendung selbst, welches Spezialwissen erfordert. Ich werde die Angelegenheit dennoch weiter beobachten, denn die AI wird Programmierern zumindest helfen, sie möglicherweise ersetzen können. Bei Standardaufgaben ist das jetzt schon denkbar.
Disclaimer
Für ein wirkliches Debugging und umfangreiches Testen des Scripts fehlen mir die Spezialkenntnisse!
