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:
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
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:
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.
Wenn keine Fehler im Projekt error.log schreiben, dann überprüfen Sie zuerst Ihr Server Fehlerprotokoll, es wird Ihnen gesagt, wo das Problem ist. –
@AlexeyMezenin StackOverflow erlaubt und ermutigt * Benutzer, ihre eigenen Fragen zu beantworten. http://stackoverflow.com/help/self-answer – ceejayoz