Laravel 5 auf Uberspace Internal Server Error 500
10. März 2015 Web-Entwicklung von Eric Kubenka
Oft verwende ich für meine Entwicklungen das PHP Framework Laravel. Lokal entwickle ich die Anwendungen mittels Homestead. Nach dem ersten Push ins Git Repository und dem anschließenden Clone auf dem Webserver, in meinem Fall Uberspace, stehe ich aber jedes mal erneut vor einem Problem, wenn ich andere Routen als '/'
aufrufe.
Internal Server Error 500
Meine Konfiguration
Ich lade meine Clones generell in mein domains
-Verzeichnis auf Uberspace, welches einen Symlink zu /var/www/virtual/{$username}
darstellt. Dort habe ich einen Unterordner clones
.
Folgend ergibt sich also folgende Ordner-Struktur bei mir innerhalb des domains
-Verzeichnisses:
domains
- clones
- codefever
- fooproject
- laravelproject
- public
- code-fever.de #Symlink zu clones/codefever
- foo.code-fever.de # Symlink zu clones/fooproject
- laravelproject.code-fever.de # Symlink zu clones/laravelproject/public
Die Subdomains für meine Laravelprojekte linke ich also imemr direkt in das public
-Verzeichnis des Projekts.
Erster Aufruf nach dem Initialisieren - Der Fehler
Nach dem Clonen und verknüpfen, funktioniert die Default Route '/'
bei mir immer wunderbar, leider machen alle anderen Routen wie /foo
Probleme und melden:
Internal Server Error 500
Lösung - Die .htaccess
Das Problem lässt sich bei mir immer durch eine Anpassung der .htaccess
-Datei im /public
-Verzeichnis des Laravelprojekts lösen. Und zwar ist der ausschlaggegeben Punkt, dass Hinzufügen der Zeile RewriteBase /
.
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
#Add Line RewriteBase
RewriteBase /
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>