2016-11-22 7 views
1

Ich versuche, Fehlerprotokollierung für meine Website zu aktivieren. Also habe ich eine Datei namens log.txt im Stamm meines Projekts erstellt.Django Fehlerprotokollierung: [Errno 13] Berechtigung verweigert

/home/xyz/public_html/projectname/log.txt 

und in meinem setting.py in dieser Adresse:

/home/xyz/public_html/projectname/projectname/settings.py 

ich eine einfache Protokollierungseinstellung haben:

LOGGINGs = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'formatters': { 
     'verbose': { 
      'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", 
      'datefmt' : "%d/%b/%Y %H:%M:%S" 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': 'log.txt', 
      'formatter': 'verbose' 
     }, 
    }, 
    'loggers': { 
     'django': { 
      'handlers':['file'], 
      'propagate': True, 
      'level':'DEBUG', 
     }, 

    } 
} 

Dies funktioniert in meinem localhostbut gut, wenn ich es online stellen, wenn Ich versuche, den Server zu starten, den ich bekomme:

[Tue Nov 22 04:27:37.817043 2016] [wsgi:error] [pid 3619] [remote 111.113.21.35:0] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/log.txt' 

hier ist der Fehler-Stack:

(XID d4tgu5) Database Connect Error: Access denied for user 'leechprotect'@'localhost' (using password: YES) 
[Tue Nov 22 04:36:25.934018 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882): Create interpreter 'myproject.com|'. 
[Tue Nov 22 04:36:25.960785 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882): Adding '/home/xyz/public_html/myproject' to path. 
[Tue Nov 22 04:36:25.961397 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882): Adding '/usr/local/lib/python3.4/site-packages/' to path. 
[Tue Nov 22 04:36:25.963133 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882, process='myproject', application='myproject.com|'): Loading WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.016998 2016] [wsgi:info] [pid 4925] mod_wsgi (pid=4925): Initializing Python. 
[Tue Nov 22 04:36:26.049383 2016] [wsgi:info] [pid 4925] mod_wsgi (pid=4925): Attach interpreter ''. 
[Tue Nov 22 04:36:26.386166 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Target WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py' cannot be loaded as Pytho 
n module. 
[Tue Nov 22 04:36:26.386312 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Exception occurred processing WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.386413 2016] [wsgi:error] [pid 4882] Traceback (most recent call last): 
[Tue Nov 22 04:36:26.387088 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 557, in configure 
[Tue Nov 22 04:36:26.387135 2016] [wsgi:error] [pid 4882]  handler = self.configure_handler(handlers[name]) 
[Tue Nov 22 04:36:26.387239 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 725, in configure_handler 
[Tue Nov 22 04:36:26.387263 2016] [wsgi:error] [pid 4882]  result = factory(**kwargs) 
[Tue Nov 22 04:36:26.388223 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1006, in __init__ 
[Tue Nov 22 04:36:26.388268 2016] [wsgi:error] [pid 4882]  StreamHandler.__init__(self, self._open()) 
[Tue Nov 22 04:36:26.388337 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1035, in _open 
[Tue Nov 22 04:36:26.388360 2016] [wsgi:error] [pid 4882]  return open(self.baseFilename, self.mode, encoding=self.encoding) 
[Tue Nov 22 04:36:26.388418 2016] [wsgi:error] [pid 4882] PermissionError: [Errno 13] Permission denied: '/log.txt' 
[Tue Nov 22 04:36:26.388464 2016] [wsgi:error] [pid 4882] 
[Tue Nov 22 04:36:26.388483 2016] [wsgi:error] [pid 4882] During handling of the above exception, another exception occurred: 
[Tue Nov 22 04:36:26.388491 2016] [wsgi:error] [pid 4882] 
[Tue Nov 22 04:36:26.388509 2016] [wsgi:error] [pid 4882] Traceback (most recent call last): 
[Tue Nov 22 04:36:26.388781 2016] [wsgi:error] [pid 4882] File "/home/xyz/public_html/myproject/myproject/wsgi.py", line 16, in <module> 
[Tue Nov 22 04:36:26.388819 2016] [wsgi:error] [pid 4882]  application = get_wsgi_application() 
[Tue Nov 22 04:36:26.389032 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
[Tue Nov 22 04:36:26.389064 2016] [wsgi:error] [pid 4882]  django.setup() 
[Tue Nov 22 04:36:26.389245 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/site-packages/django/__init__.py", line 17, in setup 
[Tue Nov 22 04:36:26.389273 2016] [wsgi:error] [pid 4882]  configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
[Tue Nov 22 04:36:26.389521 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/site-packages/django/utils/log.py", line 71, in configure_logging 
[Tue Nov 22 04:36:26.389590 2016] [wsgi:error] [pid 4882]  logging_config_func(logging_settings) 
[Tue Nov 22 04:36:26.389657 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 789, in dictConfig 
[Tue Nov 22 04:36:26.389680 2016] [wsgi:error] [pid 4882]  dictConfigClass(config).configure() 
[Tue Nov 22 04:36:26.389726 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 565, in configure 
[Tue Nov 22 04:36:26.389745 2016] [wsgi:error] [pid 4882]  '%r: %s' % (name, e)) 
[Tue Nov 22 04:36:26.389784 2016] [wsgi:error] [pid 4882] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/log.txt' 
[Tue Nov 22 04:36:26.390725 2016] [wsgi:info] [pid 4882] mod_wsgi (pid=4882, process='myproject', application='myproject.com|'): Loading WSGI script '/home/xyz/public_html/neg 
inpay/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.392489 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Target WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py' cannot be loaded as Pytho 
n module. 
[Tue Nov 22 04:36:26.392630 2016] [wsgi:error] [pid 4882] mod_wsgi (pid=4882): Exception occurred processing WSGI script '/home/xyz/public_html/myproject/myproject/wsgi.py'. 
[Tue Nov 22 04:36:26.392724 2016] [wsgi:error] [pid 4882] Traceback (most recent call last): 
[Tue Nov 22 04:36:26.392821 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 557, in configure 
[Tue Nov 22 04:36:26.392835 2016] [wsgi:error] [pid 4882]  handler = self.configure_handler(handlers[name]) 
[Tue Nov 22 04:36:26.392882 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/config.py", line 725, in configure_handler 
[Tue Nov 22 04:36:26.392892 2016] [wsgi:error] [pid 4882]  result = factory(**kwargs) 
[Tue Nov 22 04:36:26.392931 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1006, in __init__ 
[Tue Nov 22 04:36:26.392941 2016] [wsgi:error] [pid 4882]  StreamHandler.__init__(self, self._open()) 
[Tue Nov 22 04:36:26.392976 2016] [wsgi:error] [pid 4882] File "/usr/local/lib/python3.4/lib/python3.4/logging/__init__.py", line 1035, in _open 
[Tue Nov 22 04:36:26.392985 2016] [wsgi:error] [pid 4882]  return open(self.baseFilename, self.mode, encoding=self.encoding) 
[Tue Nov 22 04:36:26.393021 2016] [wsgi:error] [pid 4882] PermissionError: [Errno 13] Permission denied: '/log.txt' 

Also dachte ich, es die Protokolldatei Erlaubnis ist, so dass es ich auf 777 vorübergehend eingestellt, bis ich eine bessere Lösung zu finden. Jetzt habe ich:

ls -l /home/xyz/public_html/myproject/log.txt 
-rwxrwxrwx. 1 xyz xyz 0 Nov 22 03:19 /home/xyz/public_html/myproject/log.txt 

Es hat nicht funktioniert, dann habe ich gesucht um und fand einige haben dieses Problem wegen SELinux. DAMIT jetzt habe ich aktiviert haben AUS AS WELL I:

[[email protected]]# sestatus 
SELinux status:     disabled 

Aber noch kein Glück und ich erhalte diesen Fehler

Antwort

4

mod_wsgi wahrscheinlich ändert das aktuelle Verzeichnis/(Wurzel-Dateisystem)

Ihre App versucht, in /log.txt zu schreiben, nicht in die von Ihnen erstellte.

  • die loggings modifizieren, so dass 'Dateiname' ein vollständiger Dateipfad, kein relativer

    'Dateiname': '/home/xyz/public_html/projectname/log.txt',

  • überprüfen Sie auch, dass der Systembenutzer als apache läuft hat an diesem log.txt Rechte schreiben

+0

Es ist eigentlich, weil Apache von System-Init-Skripten gestartet wird und '/' als Arbeitsverzeichnis erbt. Dokumentiert in http://modwsgi.readthedocs.io/en/develop/user-guides/application-issues.html#application-working-directory –

2

Wenn mod_wsgi verwenden Sie keine separate Protokolldatei verwendet werden soll. Stattdessen direkte Protokollierung zu stdout oder stderr und es in der Apache-Fehlerprotokolldatei erfasst werden. Auf diese Weise Apache macht sich Sorgen um Berechtigungen und Datei Rotation usw. log Beispiel im Abschnitt ‚Protokollierung von Python Ausnahmen‘ von See:

Wenn mehrere Seiten auf einem Apache-Hosting, nur um sicher machen jede VirtualHost Es ist eine eigene Fehlerprotokolldatei, so dass verschiedene Seiten getrennt sind.

Verwandte Themen