2010-11-04 14 views
8

$ sudo /etc/init.d/apache2 पुनः आरंभमेरा Django ऐप अपनी लॉग फ़ाइल में क्यों नहीं लिख सकता है?

* Restarting web server apache2 
... waiting . ...done. 

उपयोगकर्ता नाम @ servername गुरु नवम्बर 04 18:54:37 ~/public_html/IDM_app
$ sudo पूंछ -n 60/var/log/apache2/error.log

[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] mod_wsgi (pid=28760): Exception occurred processing WSGI script '/home/username/public_html/idm.wsgi'. 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] Traceback (most recent call last): 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/handlers/wsgi.py", line 230, in __call__ 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  self.load_middleware() 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/core/handlers/base.py", line 33, in load_middleware 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  for middleware_path in settings.MIDDLEWARE_CLASSES: 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/utils/functional.py", line 276, in __getattr__ 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  self._setup() 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/conf/__init__.py", line 40, in _setup 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  self._wrapped = Settings(settings_module) 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/conf/__init__.py", line 73, in __init__ 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  mod = importlib.import_module(self.SETTINGS_MODULE) 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/site-packages/Django-1.2.3-py2.7.egg/django/utils/importlib.py", line 35, in import_module 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  __import__(name) 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/home/username/public_html/IDM_app/settings.py", line 60, in <module> 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  from settings_local import * 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/home/username/public_html/IDM_app/settings_local.py", line 1, in <module> 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  from settings_Slicehost_idm import * 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/home/username/public_html/IDM_app/settings_Slicehost_idm.py", line 12, in <module> 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  format='%(pathname)s TIME: %(asctime)s MSG: %(filename)s:%(funcName)s:%(lineno)d %(message)s', 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/logging/__init__.py", line 1500, in basicConfig 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  hdlr = FileHandler(filename, mode) 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/logging/__init__.py", line 889, in __init__ 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  StreamHandler.__init__(self, self._open()) 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] File "/usr/local/lib/python2.7/logging/__init__.py", line 908, in _open 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38]  stream = open(self.baseFilename, self.mode) 
[Thu Nov 04 18:54:27 2010] [error] [client 8.17.58.38] IOError: [Errno 13] Permission denied: '/home/username/public_html/IDM_app/log/django.osqa.log' 
[Thu Nov 04 18:54:36 2010] [notice] caught SIGTERM, shutting down 
[Thu Nov 04 18:54:37 2010] [notice] Apache/2.2.14 (Ubuntu) mod_wsgi/3.3 Python/2.7 configured -- resuming normal operations 

उपयोगकर्ता नाम @ servername गुरु नवम्बर 04 18:54:42 ~/public_html/IDM_app
$ ls -l/घर/उपयोगकर्ता नाम/public_htm एल/IDM_app/लॉग/django.osqa.log

-rw-r--r-- 1 username 0 Nov 4 18:24 /home/username/public_html/IDM_app/log/django.osqa.log 

उपयोगकर्ता नाम @ servername गुरु नवम्बर 04 19:08:41 ~/public_html/IDM_app
** $ ls -l ~/public_html/idm.wsgi **

-rw-r--r-- 1 username 222 Nov 4 18:53 /home/username/public_html/idm.wsgi 

उपयोगकर्ता नाम @ servername गुरु नवम्बर 04 19:10:50 ~/public_html/IDM_app
$ बिल्ली ~/public_html/idm.wsgi

import os 
import sys 

sys.path.append('/home/username/public_html/IDM_app/') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

import django.core.handlers.wsgi 

application = django.core.handlers.wsgi.WSGIHandler() 

उपयोगकर्ता नाम @ servername गुरु नवम्बर 04 19:11:02 ~/public_html/IDM_app $ Whoami

username 

Apache2 वर्चुअल होस्ट सेटअप फ़ाइल @ ~/public_html/idm.wsgi उपयोग करता है, क्या उपयोगकर्ता क्या सिस्टम सोचता है कि लॉग फ़ाइल लॉग/django.osqa.log लिखने की कोशिश कर रहा है?

मेरा Django ऐप अपनी लॉग फ़ाइल में क्यों नहीं लिख सकता है?

उत्तर

17

अपाचे शायद apache उपयोगकर्ता के रूप में चल रहा है, जिसका अर्थ है कि इसमें लॉग फ़ाइल में लेखन पहुंच नहीं है। यह ठीक शुरू होता है क्योंकि इसे केवल wsgi फ़ाइल को पढ़ना होता है, जिसमें सभी उपयोगकर्ताओं के लिए अनुमतियां पढ़ी जाती हैं। या तो chmod a+w django.osqa.log या chown <apache-user> django.osqa.log

नोट: पसंदीदा विधि chown फ़ाइल होगी।

नोट 2: यह विचलित-निर्भर है, लेकिन चूंकि यह उबंटू-वाई दिखता है, अपाचे उपयोगकर्ता www-data होगा।

+4

'चाउन' के बजाय' chgrp' का उपयोग करना भी एक विकल्प है। –

+0

या शायद बेहतर उपयोग एसीएल –

+0

उपयोगकर्ताओं के लिए 'apache', 'www-data', और' daemon' जांचना चाहते हैं ... – nicorellius