2015-12-14 3 views
7

पुन: लोड मेरी nginx विन्यास फाइल /etc/nginx/nginx.confNginx अभी भी डिफ़ॉल्ट त्रुटि लॉग फ़ाइल खोलने के लिए भले ही मैं nginx कॉन्फ़िग फ़ाइल तैयार किया, जबकि नीचे

user Foo; 
worker_processes 1; 

error_log /home/Foo/log/nginx/error.log; 
pid /home/Foo/run/nginx.pid; 

events { 
    worker_connections 1024; 
    use epoll; 
} 

http { 
    access_log /home/Foo/log/nginx/access.log; 

    server { 
     listen 80; 

     location =/{ 
      proxy_pass http://192.168.0.16:9999; 
     } 
    } 
} 

में स्थित है आप देख सकते हैं मैं में लॉग इन बदलने के लिए, पीआईडी ​​फ़ाइलों स्थान की कोशिश घरेलू निर्देशिका।

जब मैं Linux फिर से शुरू करता हूं तो यह काम करता है, Nginx फ़ाइल सेट और पिन फ़ाइल में त्रुटि लॉग लॉग भी करता है।

हालांकि, जब यह nginx -s reload या अन्य की कोशिश करता है, तो यह अन्य त्रुटि लॉग फ़ाइल खोलने का प्रयास करता है।

nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 
2015/12/14 11:23:54 [warn] 3356#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1 
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
2015/12/14 11:23:54 [emerg] 3356#0: open() "/home/Foo/run/nginx.pid" failed (13: Permission denied) 
nginx: configuration file /etc/nginx/nginx.conf test failed 

मुझे पता है, मैं sudo साथ अनुमति त्रुटि हल कर सकते हैं, लेकिन यहाँ में मुख्य मुद्दा एक त्रुटि लॉग फ़ाइल (/var/log/nginx/error.log) Nginx को खोलने के लिए प्रयास करता है।

यह एक और त्रुटि लॉग फ़ाइल तक पहुंचने का प्रयास क्यों करता है?

उत्तर

1

निर्देशिका/घर/फू/लॉग/nginx/पर अनुमतियों की जांच करें। यह nginx द्वारा लिखने योग्य होना चाहिए। इस तरह की अनुमतियां सेट करें:

sudo chmod 766 /home/Foo/log/nginx 
+1

मैं क्यों 'Nginx' एक और त्रुटि लॉग नहीं फ़ाइल एक अनुमति समस्या तक पहुँचने का प्रयास पूछ रहा हूँ। यहां तक ​​कि अगर अनुमति की समस्या है। मुझे लगता है कि फ़ाइल में कॉन्फ़िगरेशन फ़ाइल ('/ home/foo/log/nginx') में सेट फ़ाइल पर त्रुटि दिखाती है, जो '/ var/log/nginx/error.log' नहीं है। – SangminKim

+1

nginx लॉग को कहीं और रखने के आपके निर्देश को पढ़ने से पहले डिफ़ॉल्ट त्रुटि लॉग खोलने का प्रयास कर रहा है, और उपयोगकर्ता Foo को उस स्थान तक पहुंचने की अनुमति नहीं है। यही कारण है कि आपको पहली चेतावनी मिल रही है। यह भी प्रतीत होता है कि निर्देशिका/घर/फू/रन/लिखने योग्य नहीं है, या अस्तित्व में नहीं है। क्यों न केवल डिफ़ॉल्ट स्थानों का उपयोग करें? आप वास्तव में क्या करने की कोशिश कर रहे हैं? – cantelope

3

यह पुराना है ... लेकिन मैं एक ही दर्द से गुजर गया और यहां मेरा समाधान है।

आप लॉग देख सकते हैं एक चेतावनी, नहीं एक अवरुद्ध त्रुटि है:

nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 

यह एक समस्या :) Nginx सिर्फ स्टार्टअप पर उस फ़ाइल की जाँच करने के लिए पसंद करती है नहीं होना चाहिए ...

बस -p विकल्प का उपयोग करें। स्थानीय स्तर पर Nginx शुरू करने के लिए कुछ इस तरह मेरे लिए काम करता है:

nginx -c /etc/nginx/nginx.conf -g 'daemon off;' -p /home/Foo/log/nginx 
+0

मेरे लिए काम नहीं किया – shailenTJ

+0

@ShailenTJ: आपको क्या त्रुटि है? – RicLeal