2012-06-27 7 views
7

Mam serwer z Django/Nginx/uWSGI z uWSGI w trybie emperorowym, a dziennik błędów dla niego (dziennik błędów poziomu wasali, a nie dziennik poziomu imperatora) ma ciągły błąd uprawnień za każdym razem, gdy spawnuje nowy pracownik, tak:uWSGI Rejestr serwera ... uprawnienia odmowy odczytu pliku ... który plik?

Tue Jun 26 19:34:55 2012 - respawnowane uWSGI pracownika 2 (nowy PID: 9334)

błąd podczas otwierania pliku do odczytu: Permission denied

problem to, nie wiem, jaki plik ma problemy z otwarciem; to nie jest plik logu, oczywiście, ponieważ patrzę na niego i piszę do niego bez problemu. Jakikolwiek sposób się dowiedzieć? Używam apt-get wersji uWSGI 1.0.3-debian przez Upstart na Ubuntu 12.04. Witryna działa z powodzeniem, poza tym, co wydaje się wyciek pamięci ... stąd moje spojrzenie na plik dziennika. Eksperymentowałem ze zmianą uprawnień całego katalogu/opt /, aby uwzględnić użytkownika uwsgiuser, na próżno. Używam gniazda TCP, więc uprawnienia nie powinny tam być problemem. Czy to pamięć podręczna? Czy to ma swoje własne uprawnienia? Jeśli tak, to gdzie?

My Upstart conf file 

description "uWSGI" start on runlevel [2345] stop on runlevel [06] respawn 

env UWSGI=/usr/bin/uwsgi env LOGTO=/var/log/uwsgi/emperor.log 

exec $UWSGI \ 
--master \ 
--emperor /etc/uwsgi/vassals \ 
--die-on-term \ 
--auto-procname \ 
--no-orphans \ 
--logto $LOGTO \ 
--logdate 

My Vassal ini:

[uwsgi] 
# Variables 
base = /opt/env/mysiteenv 

# Generic Config 
uid = uwsgiuser 
gid = uwsgiuser 
socket = 127.0.0.1:5050 
master = true 
processes = 2 
reload-on-as = 128 
harakiri = 60 
harakiri-verbose = true 
auto-procname = true 
plugins = http,python 
cache = 2000 
home = %(base) 
pythonpath = %(base)/mysite 
module = wsgi 
logto = /opt/log/mysite/error.log 
logdate = true 
+0

Prawdopodobnie jest to bardziej prawdopodobne, aby uzyskać użyteczną odpowiedź na ServerFault. – Amber

Odpowiedz

8

Rzeczywista odpowiedź na to pytanie wydaje się być tym specyficznym dla Ubuntu błędem:

https://bugs.launchpad.net/ubuntu/+source/libjpeg-turbo/+bug/1031718

Można obejść ten problem, umieszczając linie

setuid uwsgiuser 
setgid uwsgiuser 

do pliku konfiguracyjnego dorobkiewicz i usuwanie ustawień uid i gid od konfiguracji uwsgi.

+2

To całkowicie działało; Dziękuję bardzo. Ten błąd doprowadzał mnie do szału. – bkev

+0

Co to jest plik konfiguracji startowej? –

+0

@uszywieloryba [Upstart] (http://upstart.ubuntu.com) jest zamiennikiem init Ubuntu. Uruchamia zadania oparte na plikach w '/ etc/init' (między innymi). – alastair

3

Mógłbyś spróbować strace proces i zobaczyć, co powoduje komunikat o błędzie, coś jak:

UWSGI=/usr/bin/uwsgi LOGTO=/var/log/uwsgi/emperor.log strace -f -o strace.log -etrace=open,write $UWSGI --master --emperor /etc/uwsgi/vassals --die-on-term --auto-procname --no-orphans --logto $LOGTO --logdate

Powiązane problemy