Es ist eine spannende Sache, nun ein korrigiertes Script lokaler Webserver unter Linux Mint. Immerhin scheint es nach diversen Korrekturen zu funktionieren. Auf jeden Fall habe ich viel dabei gelernt. Im Mittelpunkt steht die apache2.conf, das ist mir jetzt klar. Hier zunächst das Script in besser lesbarer Form. Die einzelnen Abschnitte sind gut erkennbar.
#!/bin/bash
# Zur Erinnerung:
# Duck.ai
# bitte ein Script für einen volständigen Webserver auf linux MInt 22.3 mit apache, mariadb, perl und php, jeweils die neueste version,
# mit allen Optionen, auch php-intl, php-imagick sowie phpmyadmin.
# Der Webserver soll nur lokale Zugriffe ermöglichen.
# Fehlerbehandlung ermöglichen.
# Zusätzlich Skripte zum Einschalten, zum Ausschalten und zur Deinstallation des Webservers.
# ----------------------------------------
# Funktion zur Fehlerbehandlung
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 php-imagick -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 "<Directory /var/www/html/>
Options FollowSymLinks
# Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>" | 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 (Routine um z.B. root und Passwort zu 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 "<?php phpinfo(); ?>" | 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."
Das war es! Dennoch ist eventuell noch Handarbeit nötig. Empfehlenswert ist es, die apache2.conf komplett zu checken, um widersprüchliche Anweisungen zu beseitigen. Zum Beispiel „Require local“, nicht „Require all granted“ soll aktiv sein. Der Block zum Directory wird nämlich ggf. nochmals angefügt, der erste ist dann möglicherweise fehlerhaft. Die Option Indexes in dieser Sektion besser löschen, Dateilisting ist nicht sinnvoll. Nach dem Kopieren von Dateien per root müssen die Benutzerrechte, wie oben beschrieben, nochmals für den Webordner gesetzt werden. Die Datei info.php würde ich wieder löschen. Nach Änderungen ist sudo systemctl restart apache2 nötig.
Anschließend geht es um Tests der Installation. Zunächst wird die Konfiguration des Webservers gecheckt: sudo apache2ctl configtest. Wenn kein Fehler gemeldet wird, starte sudo apt install wapiti. Wapiti ist ein traditionelles Open-Source-Tool für den Website-Check. Der Befehl lautet wapiti -u http://localhost. Die Analyse findet sich im Home-Verzeichnis unter User/.wapiti.
Korrigiertes Script für den lokalen Webserver unter Linux Mint. Die Grenzen der AI sind hier sichtbar. Das war der 2. und hoffentlich klärende Versuch. Diesmal sogar mit Sicherheitscheck. Nerdistan lässt grüßen.
