Jetzt brauch ich doch einen lokalen Webserver auf Linux… das übt!

Das zählt unter „Fingerübung“: einmal Install mit HIndernissen

Ich gebe zu, ich dachte erstmal ich mach es mir bequem und nehme den guten alten Xampp. Ich brauche nämlich doch einen lokalen Webserver, auch unter Linux. Warum? Als Testumgebung, weil man manche Sachen tunlichst nicht in der Produktivumgebung ausprobiert. Mein geliebtes Inselfisch-Kochbuch läuft nämlich seit dem vorletzten PHP-Update bei Strato nur noch mit der alten PHP-Version, und das ist erstens nicht schön und kostet zweitens eine monatliche Administrations-Gebühr, was mich anfuchst.

Frisch ans Werk, gegooglet und installiert, Xampp gibts auch für Linux, da heisst er Lampp. Nachdem ich erst dachte dass der Installer sich aufgehängt hat und nach etwas mehr googlen hab ich mich dann in Geduld geübt und den Installer eine halbe Stunde lang stehen lassen, dann ist er durchgelaufen. Und nachdem ich eine vorige nginx-Installation entfernt habe, die den Port 80 besetzte, liess sich auch der Apache starten!

Na wunderbar, aber es nutzt mir so erstmal nix, weil die PHP Version (8.1.25) leider ziemlich veraltet ist. Na ja, ich hätte ja auch beim googlen merken müssen, dass Xampp insgesamt als  veraltet zu werten ist… aber what shalls wie man auf neudeutsch sagt, schließlich sollte es auf Linux auch ohne gehen, Apache und Co sind ja native Linux. Ich geh mal recherchieren und melde mich später wieder.

Neue Anforderung

So, jetzt bin ich wieder da, mit einer etwas genaueren Zieldefinition, die war nämlich nicht ganz sauber. Also nochmal, mit etwas mehr Schmackes:

1. das inselfisch-Kochbuch läuft derzeit mit PHP 8.3.

2. die neueste empfohlene PHP-Version bei Strato ist 8,4

3.  beim testweise umstellen auf 8.4 ist das inselfisch-Kochbuch nicht mehr gestartet, deshalb hab ich auf die alte PHP-Version zurückgestellt und alles gelassen wie es war

4. aus den FAQs bei Strato hab ich beim querlesen entnommen, dass das manuelle testweise umstellen der PHP Version auf dem Server eine eine etwas haarige Angelegenheit ist, die meine Linux-Kanntnisse deutich übersteigt und einiges an Rechereche erfordert, z.B. wie man die .htaccess editiert. Ich habe auch was gelesen dass die manuell umgestellte PHP-Version nur solange gültig bleibt wie die Benutzersession bei Strato nicht beendet wird, aber da muss ich echt nochmal nachlesen. Da sind meine Webserver-Kenntnisse echt nicht gut genug.

Bei genauerer Überlegung stelle ich fest, dass ich eigentlich beide PHP-Versionen auf dem lokalen Webserver brauche, mit der Möglichkeit („on the fly“ wäre optimal) zwischen den Versionen umzuschalten. Ich redefiniere also mein Ziel. Und melde mich wieder ab zur neuen Recherche.

Apache intallieren

Der Webserver Apache lässt sich komfortabel über die Anwendungsverwaltung installieren, suche nach apache2. Gestartet und gestoppt wird er aus der Kommandozeile mit:

sudo service apache2 start

bzw:

sudo service apache2 stop

Zustand abfragen (erfordert Password), überprüfen ob der Server läuft:

sudo systemctl status apache2

Apache neu starten

sudo systemctl restart apache2

PHP Version installieren

sudo apt install php8.3-cli

Wenn der Browser kein PHP interpretiert

Das ist der Fall, wenn beim Aufruf von phpmyadmin der Sourcecode angezeigt wird.
Oft ist PHP installiert, aber das Apache-Modul libapache2-mod-php fehlt.

Lösung: Installieren Sie das Modul und aktivieren Sie es. Öffnen Sie das Terminal und geben Sie ein:

sudo apt update
sudo apt install php libapache2-mod-php
sudo a2enmod php8.x # Ersetzen Sie 8.x durch Ihre installierte Version (z.B. 8.3)
sudo systemctl restart apache2

Wenns das noch immer nicht gewesen war: ein neues jungfräuliches Profil in Firefox wirkt Wunder!

DB-Passwort und User nachträglich hinzufügen

Falls sie bei der Installation von MariaDB kein Passwort für ihren User vergeben haben, müssen sie das noch nachholen

CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'meinpasswort';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Dazu muss die Datenbank Console im Terminal als root gestartet werden.

mysql -u root -p

Ein paar wichtige Kommandos:

sudo systemctl start mysql
sudo systemctl status mysql
sudo systemctl stop mysql
sudo systemctl restart mysql

Haben wir jetzt einen funktionalen lokalen Webserver?

Das testen wir bei der nächsten Session. Dann gehts „back to the roots“, wir installieren WordPress, aber diesmal unter Linux. Das wird spannend!