Zum Inhalt

Fragenpool LB2 – Verständnisfragen

Dieser Fragenpool enthält Verständnisfragen für die Blöcke, bei denen Artefakt und tatsächliches Verständnis am stärksten auseinanderfallen. Die Fragen eignen sich für ein kurzes mündliches Standortgespräch oder als schriftliche Reflexion.

Hinweis für die Lehrperson: Die Fragen sollen kein Abfragen von Wissen sein, sondern Transfer prüfen. Wenn eine lernende Person die Frage mit Verweis auf ihre eigene Dokumentation beantwortet, ist das ein positives Zeichen.


Block 3: Webserver

  1. Virtual Host: Was ist ein Virtual Host in Apache – und warum ist er notwendig, wenn mehrere Websites auf einem einzigen Server laufen?

  2. mod_rewrite: Was macht die Direktive RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] konkret? Erkläre jeden Teil der Regel.

  3. HTTP vs. DNS-Challenge: Was ist der Unterschied zwischen einer HTTP-Challenge und einer DNS-Challenge bei Let's Encrypt? Wann würdest du welche einsetzen?

  4. 301 vs. 302: Du hast HTTP auf HTTPS weitergeleitet. Warum ist ein 301 Moved Permanently für diesen Zweck besser als ein 302 Found?

  5. AllowOverride / Require: In deiner Virtual Host Konfiguration steht im <Directory>-Block AllowOverride All und Require all granted. Was bedeuten diese beiden Direktiven – und was würde konkret passieren, wenn AllowOverride None gesetzt wäre?

  6. Self-Signed: Warum ist ein selbstsigniertes Zertifikat für eine produktive WordPress-Seite nicht geeignet – auch wenn die Verbindung verschlüsselt wäre?


Block 4: PHP

  1. mod_php vs. FPM: Was ist der Unterschied zwischen PHP als Apache-Modul (mod_php) und PHP-FPM mit FastCGI? Welchen Vorteil bringt FPM?

  2. Konfigurationshierarchie: Du setzt upload_max_filesize = 64M in .user.ini. Was passiert, wenn die globale php.ini diesen Wert auf 8M begrenzt – welcher Wert gilt am Ende?

  3. Warum .user.ini: Warum ist es sinnvoller, PHP-Einstellungen über .user.ini statt direkt in php.ini zu setzen – sowohl aus Sicherheits- als auch aus Administrationssicht?

  4. FPM-Statusseite: Was zeigt die PHP-FPM Statusseite, und welche Werte davon sind für eine Problemdiagnose besonders relevant?

  5. phpinfo() prüfen: Warum ist es wichtig, dass in phpinfo() Server API: FPM/FastCGI steht? Was würdest du vermuten, wenn dort stattdessen Apache 2.0 Handler stehen würde?

  6. FPM läuft? Wie prüfst du ohne die Statusseite, ob der PHP-FPM-Dienst aktiv ist und auf welchem Socket oder Port er lauscht?


Block 5: MySQL/MariaDB

  1. Eingeschränkte Rechte: Warum hat der WordPress-Datenbankbenutzer nur Rechte auf seine eine Datenbank? Was wäre das konkrete Risiko, wenn er volle (ALL PRIVILEGES) Rechte hätte?

  2. '%' als Host: Was bedeutet GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'%' – und warum ist '%' ein Kompromiss zwischen Komfort und Sicherheit?

  3. Root nur lokal: Warum darf sich der Root-Benutzer ausschliesslich von localhost anmelden – was wäre das Risiko, wenn er sich von aussen einloggen könnte?

  4. Netzwerksegmentierung: Was bedeutet Netzwerksegmentierung im Kontext eines dedizierten Datenbankservers? Was ändert sich konkret an Firewall-Regeln und Erreichbarkeit?

  5. localhost vs. 127.0.0.1: Was passiert, wenn in wp-config.php DB_HOST = localhost steht, MySQL aber nur auf 127.0.0.1 lauscht und kein Unix-Socket vorhanden ist?

  6. Rechte prüfen: Wie kannst du nach der Einrichtung überprüfen, welche Rechte ein bestimmter MySQL-Benutzer tatsächlich hat?


Block 6: phpMyAdmin/Adminer

  1. Eigene Datenbank: Braucht phpMyAdmin eine eigene Datenbank – und wenn ja, wozu dient sie konkret?

  2. phpmyadmin-User: Was ist der phpmyadmin-MySQL-User, welche Rechte hat er typischerweise, und wo sind seine Zugangsdaten hinterlegt?

  3. cookie vs. config: Was ist der Unterschied zwischen den Authentifizierungstypen cookie und config in phpMyAdmin – warum gilt config als unsicher?

  4. Sicherheit: Jemand sagt: „phpMyAdmin ist passwortgeschützt, also sicher." Was würdest du ergänzen oder korrigieren?

  5. phpMyAdmin vs. Adminer: Warum wäre Adminer in manchen Situationen eine bessere Wahl als phpMyAdmin – und was spricht umgekehrt für phpMyAdmin?

  6. Verbindungsweg: Wie verbindet sich phpMyAdmin mit MySQL – über einen TCP-Port oder über einen Unix-Socket? Wo ist das in der Konfiguration festgelegt?


Block 8: WordPress-Migration

  1. Datei-Berechtigungen: Warum müssen die WordPress-Files korrekte Berechtigungen haben? Beschreibe konkret, was passiert, wenn der Webserver-User keine Schreibrechte auf wp-content/uploads hat.

  2. MD5-Hash: Du hast in wp_users einen MD5-Hash gesetzt, um das Passwort zurückzusetzen. Warum ist MD5 für Passwort-Hashing problematisch – und was verwendet WordPress intern eigentlich?

  3. Serialisierte Daten: Was sind „serialisierte Daten" in der WordPress-Datenbank – und warum würde ein direktes SQL REPLACE() auf die Domain-URL diese Daten korrumpieren?

  4. --dry-run: Was bewirkt der Befehl wp search-replace 'alte-domain.ch' 'neue-domain.ch' --dry-run – und warum sollte man diesen Flag verwenden, bevor man den echten Befehl ausführt?

  5. wp-config.php: Nenne mindestens vier wichtige Einstellungen in wp-config.php und erkläre, wofür jede davon dient.

  6. Vollständigkeit prüfen: Wie überprüfst du nach der Migration, dass wirklich alle alten URLs ersetzt wurden – nicht nur die Startseite, sondern auch Medien-Links, Shortcodes und Widget-Einstellungen?