Du betrachtest gerade Script für Linux Mint 22.3 als XAMPP-Ersatz
Linux Mint Logo

Script für Linux Mint 22.3 als XAMPP-Ersatz

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!

Schreibe einen Kommentar

* Bitte verwenden Sie ein signifikantes Pseudonym, nicht Ihren Klarnamen. Ihre IP-Adresse wird beim Absenden anonymisiert. Ihre Email-Adresse ist nicht erforderlich.