Ich lasse Flasche auf mod_wsgi laufen. Meine flask-App, die sich auf /var/www/app
befindet, erhält eine Datei vom Benutzer und speichert sie im /var/www/app/tmp
-Verzeichnis. Aber selbst nach allen chmod und chown (dachte, es war ein Erlaubnissproblem), konnte ich dieses tmp-Verzeichnis nicht erreichen.
Nach einigem Debugging habe ich herausgefunden, dass das aktuelle Arbeitsverzeichnis der flask-App /
ist.
Ich kann das Arbeitsverzeichnis um os.chdir('/var/www/')
ändern, aber ich möchte das aus Sicherheitsgründen vermeiden.
Hier ist meine Apache-Konfiguration:
%Vor% Wie kann ich das Arbeitsverzeichnis meiner App von /
in /var/www
?
Die Dokumentation für WSGIDaemonProcess besagt, dass Sie die Zeilengruppe home=...
verwenden können:
home = Verzeichnis
Definiert einen absoluten Pfad eines Verzeichnisses, das als verwendet werden soll erstes aktuelles Arbeitsverzeichnis der Daemon Prozesse innerhalb der Prozessgruppe. Wenn diese Option nicht definiert ist, können Sie in mod_wsgi 1.X aktuelles Arbeitsverzeichnis des Apache-Elternprozesses wird sein geerbt von den Daemon-Prozessen innerhalb der Prozessgruppe. Normalerweise das aktuelle Arbeitsverzeichnis des Apache-Elternprozesses wäre das Stammverzeichnis. In mod_wsgi 2.0+ funktioniert die anfängliche aktuelle Arbeit Verzeichnis wird so eingestellt, dass es das Home-Verzeichnis des Benutzers ist, den das Daemon-Prozess läuft als.
Ich bin allerdings neugierig - warum würde Ihrer Meinung nach os.chdir
ein Sicherheitsrisiko darstellen?