Ist-Stand aufnehmen, bevor du etwas anfasst
Der häufigste Migrationsfehler ist, eine Konfiguration zu übersetzen, von der niemand weiß, welche Teile davon überhaupt greifen.
# Apache: geladene Module und tatsächlich aktive Vhosts
apachectl -M | sort
apachectl -S
apachectl configtest
# Wo liegen überhaupt .htaccess-Dateien und was steht drin
find /var/www -name .htaccess -printf '%p\n' | tee /root/htaccess-liste.txt
grep -rhn 'RewriteRule\|AuthType\|Header set' /var/www --include=.htaccess
# nginx: die vollständige Konfiguration nach allen Includes
nginx -T > /root/nginx-effektiv.confnginx -T gibt die komplette, zusammengesetzte Konfiguration aus, inklusive aller Includes. Damit beginnt jede Fehlersuche, denn der Befehl zeigt, was der Server sieht, und nicht, was in der Datei steht, die du gerade offen hast.
Die Pfade unterscheiden sich je Distribution, und das ist die häufigste Ursache dafür, dass eine kopierte Anleitung nicht funktioniert. Auf Debian und Ubuntu heißt der Dienst apache2, die Konfiguration liegt unter /etc/apache2, und Module wie Vhosts werden über a2enmod und a2ensite per Symlink aktiviert. Auf der RHEL-Familie heißt der Dienst httpd, alles liegt unter /etc/httpd, Module kommen über LoadModule-Zeilen in /etc/httpd/conf.modules.d/, und a2enmod gibt es dort nicht. Bei nginx existieren sites-available und sites-enabled ausschließlich in den Debian-Paketen, die RPM-Pakete kennen nur /etc/nginx/conf.d/*.conf.