Sehr geehrte Damen und Herren,
dieser Beitrag ist eher weniger eine Frage an die Community, sondern mehr eine Anleitung zur Einrichtung des CodeIgniter 4 (oder ähnliche) PHP Frameworks.
Bei der Einrichtung auf einem shared Webhosting bin ich auf Hürden gestoßen und denke, dass folgendes einigen helfen wird. Im Internet kursieren viele Anleitungen die Empfehlen, den Inhalt des /public Ordners in den root Ordner zu verschieben, was Sie allerdings in Produktionsumgebungen keinesfalls machen sollten, da dadurch statische Daten ggf. direkt aufgerufen (Bsp.: domain.de/README.md) und Bestandteile des Framework erreicht werden können.
1. CodeIgniter Quellcode in den Webspace hochladen
Ziemlich selbsterklärend - Laden Sie Ihr Projekt in dem gewünschten Webspace, optional unter der gewünschten Subdomain, hoch.
2. Hosting-Einstellungen
Setzen Sie den Dokumentenstamm auf domain.de/public.
Es empfiehlt sich die dauerhafte HTTP zu HTTPS Weiterleitung zu aktivieren, da dies in Schritt 6 relevant wird.
Für CodeIgniter 4 benötigen Sie PHP-Version 7.3 oder neuer als FastCGI-Anwendung.
3. PHP-Einstellungen
Setzen Sie open_basedir auf {WEBSPACEROOT}{/}{:}{TMP}{/}....
4. Einstellungen für Apache & nginx
Deaktivieren Sie Fähigkeit, symbolischen Verknüpfungen zu folgen, einschränken.
5. Anpassung der app/Config/App.php
Setzen Sie $baseURL auf 'https://sub.domain.de/' und $indexPage auf ''.
6. Anpassung der .htaccess im public Ordner
Für die Berücksichtigung von HTTPS ändern Sie folgende Zeile 27:
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] zu RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
Um alle Controller-Anfragen an die index.php weiterzuleiten, ändern Sie folgende Zeile 34:
RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA] zu RewriteRule ^([\s\S]*)$ index.php?/$1 [L,NC,QSA]
Falls es bessere Arten der Einrichtung gibt, bitte ich um Ihre Beiträge.
Mit freundlichen Grüßen
Christopher