Ich habe versucht, über diese Frage zu suchen, aber es scheint nirgendwo, wo es gründlich erklärt wird, meist nur Teile des Problems wie app/storage
Erlaubnis wurde nicht festgelegt, so Webserver kann Datei schreiben, aber mein Problem scheint größer und grundlegender zu sein, ich hoffe, dass jemand ausführlich erklären kann, wie dies eingerichtet werden sollte, vorzugsweise ohne die Erlaubnis, 777
zu setzen.PHP-FPM + Laravel + Nginx + Ubuntu Erlaubnis
Also mein Stack ist Ubuntu 14.04, PHP 5.6 mit PHP-FPM weil ich nginx 1.4.6 verwenden und ich verwende Laravel 4.2 als Rahmen, ow und ein mehr ich Git verwenden als mein Versionierungswerkzeug. Also, was die notwendige Schritt-für-Schritt die folgenden ermöglichen:
Einstellung des ursprünglichen Projekts, Git und Nginx:
So wie weit ich weiß, ist Nginx einrichten zu verwenden Benutzername
www-data
als Standard richtig? Bedeutet das, dass ich meinen Benutzer z.kevin
in die Gruppewww-data
? Wenn ich Git initialisieren, erstellen Sie das Projekt mit Composer, SSH öffentlichen/privaten Schlüssel einrichten, muss ich zur Gruppe gehörenwww-data
oder ich musssudo
oder was? In meinem Produktionsserver habe ich versucht,sudo
für die Einrichtung alles zu verwenden, es macht es einfacher, all das oben genannte zu tun, aber ist es die beste Praxis?machen
app/storage
beschreibbaren für Webserver:Ich denke, dies ist die zweite und wichtigste für Laravel, denn es sei denn, dies Laravel funktioniert nicht ausgeführt werden, meines Wissens, dass dieser Ordner beschreibbar sein muss durch den Webserver (nginx), also muss ich dies auf
sudo chown -R www-data:www-data app/storage
undsudo chmod -R 664 app/storage
richtig einstellen? Aber irgendwie scheint das nicht die ganze Zeit zu funktionieren, denn während meiner Entwicklung wird es manchmal sagen, dass ein Cache einer Ansicht nicht in den Ordnerapp/storage
geschrieben werden kann, also muss ich ihn am Ende auf777
oder775
setzen, wenn ich M glücklich.Öffentliche Ordner oder Ort meines Vermögens
Hier habe ich einige Inkonsistenz zu, ich habe es am Ende zu
777
einzurichten, um sicherzustellen, dass alle meine Dateien von nginx zugegriffen werden kann. Manchmal nginx wird mir sagen, dass ein Bild in meinem Asset-Ordner verboten ist, und es wird nur HTTP 200 zurückgeben, wenn ich entweder777
oder die Gruppe aufwww-data:www-data
ändern, muss ich die Berechtigung oder Gruppe für jedes Bild ändern dass ich aus Gimp, Photoshop erstellt habe, oder wenn ich von Dropbox oder von meiner E-Mail heruntergeladen habe, wenn mein Grafikdesigner neue Icons erstellt?Datei hochladen
Also irgendwo um die Zeit, in der Lage, die Menschen zum Beispiel des Profilbild hochladen, oder wenn ich einen Blog schreibe ich ein Bild hochladen, bedeutet dies, dass an einem gewissen Punkt des Datei-Upload-Skript wird die Datei aus dem Ordner
/tmp
in meinepublic
Ordner verschieben, muss es möglicherweise nur in ein Unterverzeichnis inpublic
schreiben oder vielleicht muss es einen Ordner basierend auf einem bestimmtenid
erstellen und die Datei in das Verzeichnis verschieben, die meisten von Zeit werde ich einen Fehler erhalten, dass das Verzeichnis während der Ausführung des Skripts nicht beschreibbar oder irgendein Erlaubnisfehler als solcher scheint. Bedeutet das, dass der PHP-Prozess mit einer gewissen Berechtigung ausgeführt werden muss? Oder bedeutet das, dass das Verzeichnis eine bestimmte Berechtigung haben muss? Bezieht sich dieses Problem auf den Nginx-Service oder bezieht es sich auf den PHP-Prozess?ich die Erfahrung von Paketen zu benutzen wie
roumen/sitemap
oderjlapp/swaggervel
, scheint sie die gleiche FassadeFile
, zu verwenden, aber irgendwie haben sie keine Probleme mit der Erlaubnis, ich versuche, ihren Code Verhalten zu replizieren, aber ich traf das Problem über.Queue, Artisan, andere Befehlszeilen basierend ausgeführt Skript
Last werden Befehlszeilen basierend ausgeführt Skript, verhält sich dies das gleiche wie Skript, das von der Interaktion mit dem Webserver, wie die Datei ausgeführt hochladen, oder muss ich mich auf andere Inkonsistenzen vorbereiten?
Danke, wenn mir jemand das erklären kann. Ich denke, wenn ich es herausfinde, werde ich einen Blogpost oder etwas erstellen, schätzen es Jungs! : D
Oh noch eine Sache, bitte nicht Homestead Antwort -.- –