Ziel-WSGI-Skript nicht gefunden oder kann nicht ausgeführt werden

Ziel-WSGI-Skript nicht gefunden oder kann nicht ausgeführt werden

Dieses Problem quält mich schon seit Tagen. Ich verwende Apache, WSGI und Django auf meinem Raspberry Pi. Das Betriebssystem ist Raspbian.

Alles ist in Ordnung, bis auf diesen Fehler von Apache.

[error] [client 127.0.0.1] Target WSGI script not found or unable to stat: /home/pi/EZ_Green/apache/ems_gateway_django.wsgi

Meine Konfigurationsdatei ist so, ziemlich unkompliziert

WSGIDaemonProcess ems.ezgreenbuildings.com processes=1 maximum-requests=100 threads=10
WSGIScriptAlias / /home/pi/EZ_Green/apache/ems_gateway_django.wsgi

Der Dateipfad ist definitiv der vollständige Pfad. Die Datei existiert also. Dann dachte ich, der Apache-Serverprozess habe keine Berechtigung, auf die Datei zuzugreifen, also habe ich den Modus der WSGI-Datei auf 777 geändert. Aber es wird immer noch derselbe Fehler gemeldet.

Ich habe eine Weile gesucht und mehrere Methoden ausprobiert.

  1. Verschieben Sie die WSGI-Datei in einen anderen Ordner, beispielsweise „/var/www“, aber sie kann immer noch nicht gefunden werden.
  2. versuche Apache neu zu installieren, funktioniert nicht.
  3. abschließenden Schrägstrich entfernen

Das Seltsame ist, dass Apache einwandfrei funktioniert, wenn ich die WSGI-Konfigurationsdatei entferne. Und Django selbst funktioniert einwandfrei, wenn ich den von Django bereitgestellten Testserver ausführe.

Wenn mir jemand helfen kann, wäre ich sehr froh. Danke!

Antwort1

Haben Sie SELinux-Erweiterungen aktiviert, die Apache daran hindern, auf die Verzeichnisse zuzugreifen, in denen die Dateien vorhanden sind?

Erlauben die Berechtigungen für das Home-Verzeichnis den Zugriff auf Apache? Es reicht nicht aus, dass nur die Datei lesbar ist, alle Verzeichnisse darunter müssen ebenfalls zugänglich sein.

Nicht damit verbunden, aber haben Sie eine WSGIProcessGroup-Direktive, die WSGIDaemonProcess entspricht, sodass Anforderungen tatsächlich zur Ausführung im Daemon-Prozess delegiert werden?

Schließlich können Sie „processes=1“ weglassen, da dies standardmäßig einem einzelnen Prozess entspricht und das Festlegen von „processes“ für eine beliebige Zahl andere Auswirkungen hat, da dadurch in der WSGI-Umgebung gekennzeichnet wird, dass es sich um eine Multiprozesskonfiguration handelt.

verwandte Informationen