2016-03-20 14 views
9

Ich installierte Laravel 5 auf einem neuen VPS, ich lief alles gut, aber ich bemerkte, dass ich keine Laravel Fehler das System würde nur einen Server 500 Fehler bei mir feuern, die keine Hilfe ist wenn ich meinen Code debugge.Laravel 5 keine Fehler Protokolle

Als ich in der Laravel storage/log schaute, war es leer, was seltsam war, weil ich die richtigen Dateiberechtigungen von 777 gesetzt hatte.

Wie bekomme ich Laravel Logs? Warum werden sie nicht in meine storage/log Datei geschrieben.

+2

Wenn keine Fehler im Projekt error.log schreiben, dann überprüfen Sie zuerst Ihr Server Fehlerprotokoll, es wird Ihnen gesagt, wo das Problem ist. –

+0

@AlexeyMezenin StackOverflow erlaubt und ermutigt * Benutzer, ihre eigenen Fragen zu beantworten. http://stackoverflow.com/help/self-answer – ceejayoz

Antwort

6

Wenn Sie Ihre Dateiberechtigungen korrekt auf der /storage Dateiverzeichnis festgelegt haben und Sie auf einem VPS laufen keine Shared-Hosting Sie können Ihre Apache-Protokoll überprüfen möchten, innerhalb var/log/apache2/error.log

Hier können Sie nur sehen, Linie, die lesen etwas entlang der Linien von /var/www/html/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

Gut, das ist seltsam, weil Sie die richtigen Dateiberechtigungen haben ...

die von SSH'ing in Ihrem VPS Kopf in das Verzeichnis Lassen Sie beginnen, wo Laravel cd /var/www/html normalerweise installiert ist

In hier, wenn Sie ls -l laufen Sie sollten unten einige ähnliche Ergebnisse zu diesem Bild erhalten: enter image description here

Beachten Sie, wie wir haben Zugriff auf die Website als Root-Benutzer, das ist unser Problem und wir können dies bestätigen indem Sie ps aux | grep apache2

enter image description here

Sie können hier sehen apache2 als Benutzer www-data ausgeführt, die für apache normal ist. Das bedeutet, wenn unsere Laravel-Installation versucht, Dateien entweder unter Verwendung von ->move() zu verschieben oder nur versucht, die Protokolldatei zu schreiben, schlägt sie fehl, da der www-data-Benutzer keine Berechtigung hat. So können Sie zu diesem www-data Benutzer durch Lauf ändern: chown -R www-data:wwww-data *

Nun, wenn Sie ls -l in Ihrem www/html Verzeichnis ausführen sollten Sie Root-Benutzer geändert www-data sehen:

enter image description here

Diese Mittel wurden nun die Bearbeitung die Dateien als der Benutzer www-data, der die Berechtigung hat, so sollten alle Änderungen, die Sie über SFTP vornehmen, diese Benutzeränderung widerspiegeln. Fest!

Bearbeiten - Dies ist das erste Mal, dass ich meine eigene Frage beantwortete, hoffentlich ist es in Ordnung.

+1

Es ist in Ordnung, Ihre eigene Frage zu beantworten. – ceejayoz