2016-04-20 10 views
3

Der Versuch, ubuntu + nginx + uwsgi zu konfigurieren + djangostarten: Job uwsgi konnte nicht gestartet werden,

Emporkömmling Skript /etc/init/uwsgi.conf

description "uWSGI application server in Emperor mode" 

start on runlevel [2345] 
stop on runlevel [!2345] 

setuid voxa 
setgid www-data 

exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites 

uwsgi Konfiguration

[uwsgi] 
project = project 
base = /home/user 

chdir = %(base)/%(project) 
home = home/user/Env/project_env 
module = %(project).wsgi:application 

master = true 
processes = 5 

socket = %(base)/%(project)/%(project).sock 
chmod-socket = 664 
vacuum = true 

socket = %(base)/%(project)/%(project).sock 
chmod-socket = 664 
vacuum = true 

Aber nach dem Ausführen des Befehls sudo Service uwsgi Start Ich bekomme einen Fehler

Start: Job konnte nicht gestartet werden

Was sollte ich überprüfen, um damit umzugehen?

UPD: mit virtualenv aktiviert App läuft erfolgreich mit uwsgi Befehl

uwsgi --http: 8000 --module project.wsgi

+0

Versuchen Sie '/ usr/local/bin/uwsgi --emperor/etc/uwsgi/sites' von Ihrem Terminal mit dem Benutzer' voxa' und der Gruppe 'www-data' auszuführen. Das gibt möglicherweise einige Fehlerprotokolle oder einen Grund des Fehlschlagens. – GwynBleidD

+0

"!!! keine interne Routing-Unterstützung, Wiederaufbau mit pcre Unterstützung !!!" und "bind(): Berechtigung verweigert [core/socket.c Zeile 230]" – Crampus

Antwort

3

uwsgi nicht über Berechtigungen Socket-Datei zu erstellen, in bestimmten Verzeichnis. Um das zu lösen, kannst du Kaiser als root ausführen und nach dem Erstellen von Socket Privilegien in Vasallen löschen. Fügen Sie einfach auf Ihre Vasallen config:

username = voxa 
gropuname = www-data 

Und entfernen setuid und setgid aus dem Emporkömmling Konfigurationsdatei.

Wenn Sie befürchten, dass jemand das missbraucht und andere Benutzer/Gruppen verwendet, können Sie Kaiser tyrant mode verwenden, indem Sie in upstart config --emperor-tyrant zur uwsgi start line hinzufügen. Dadurch wird die Änderung des Benutzernamens und Gruppennamens auf einen anderen als den Besitzer der Konfigurationsdatei vassal nicht zugelassen.

+0

Danke, es funktioniert aber erst nachdem ich die Rechte des Projektstammverzeichnisses auf 777 geändert habe. Ist es Ok? – Crampus

+0

Aus Sicherheitssicht - es ist nicht! Wenn Sie Ihren Server für andere Benutzer freigeben oder andere Projekte verwenden, die auf verschiedenen Benutzern ausgeführt werden, sollten Sie diese nicht verwenden. Projektdateien sollten dem Benutzer voxa gehören, wenn Sie dieses Projekt für diesen Benutzer ausführen – GwynBleidD