2012-06-27 12 views
7

मेरे पास सम्राट मोड में uWSGI के साथ Django/Nginx/uWSGI चल रहा एक सर्वर है, और इसके लिए त्रुटि लॉग (वासल-स्तर त्रुटि लॉग, सम्राट-स्तर लॉग नहीं) प्रत्येक बार जब यह एक नया उत्पन्न होता है तो निरंतर अनुमति त्रुटि होती है कार्यकर्ता, इसलिए जैसे:uWSGI सर्वर लॉग ... अनुमति फ़ाइल पढ़ने से इनकार कर दिया ... कौन सी फाइल?

मंगल जून 26 19:34:55 2012 - respawned uWSGI कार्यकर्ता 2 (नई पीआईडी: 9334) पढ़ने के लिए

त्रुटि फ़ाइल खोलने: अनुमति अस्वीकृत

समस्या है, मुझे नहीं पता कि उसे किस फाइल को खोलने में परेशानी हो रही है; यह लॉग फ़ाइल नहीं है, जाहिर है, क्योंकि मैं इसे देख रहा हूं और यह बिना किसी मुद्दे के लिख रहा है। पता लगाने का कोई तरीका? मैं उबंटू 12.04 पर अपस्टार्ट के माध्यम से uWSGI 1.0.3-डेबियन का एपीटी-प्राप्त संस्करण चला रहा हूं। यह साइट सफलतापूर्वक काम कर रही है, जो स्मृति मेमोरी की तरह दिखती है ... इसलिए मैं लॉग फ़ाइल को देख रहा हूं। मैंने यूवीजियस उपयोगकर्ता को शामिल करने के लिए पूरी/ऑप्ट/निर्देशिका की अनुमतियों को बदलने के साथ प्रयोग किया है, इसका कोई फायदा नहीं हुआ है। मैं एक टीसीपी सॉकेट का उपयोग कर रहा हूं, इसलिए वहां अनुमतियां नहीं होनी चाहिए। क्या यह कैश है? क्या इसकी अपनी अनुमति है? यदि हां, तो कहाँ?

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 

मेरे वसल 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

शायद सर्वरफॉल्ट पर उपयोगी उत्तर प्राप्त करने की अधिक संभावना है। – Amber

उत्तर

8

वास्तविक जवाब देने के लिए यह प्रश्न यह उबंटू-विशिष्ट बग प्रतीत होता है:

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

आप समस्या को हल अपने नवोदय विन्यास फाइल में लाइनों

setuid uwsgiuser 
setgid uwsgiuser 

डाल, और अपने uwsgi विन्यास से uid और gid सेटिंग्स को हटा कर काम कर सकते हैं।

+2

यह पूरी तरह से काम किया; बहुत बहुत धन्यवाद। त्रुटि मुझे पागल कर रही थी। – bkev

+0

अपस्टार्ट कॉन्फ़िगरेशन फ़ाइल क्या है? –

+0

@uszywieloryba [अपस्टार्ट] (http://upstart.ubuntu.com) उबंटू के इनिट प्रतिस्थापन है। यह '/ etc/init' (अन्य स्थानों के साथ) में फ़ाइलों के आधार पर नौकरियां चलाता है। – alastair

3

आप strace प्रक्रिया की कोशिश कर सकते हैं और देखते हैं क्या त्रुटि संदेश से चलाता है, कुछ की तरह:

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

संबंधित मुद्दे