2016-06-09 5 views
1

Я использую Django 1.6 и Apache для моего веб-сайта, на первый сервер работал хорошо, я мог успешно перейти на моих веб-страницах, но только после того, как я бегу:Django + Apache Internal Server Error: Отказано в

git reset --hard HEAD^ 

в моем хранилище/вар/WWW/HTML/MySITE, он показал Внутренняя ошибка сервера в браузере, и я получил это в журнале ошибок:

[Thu Jun 09 16:28:32 2016] [info] mod_wsgi (pid=15479): Create interpreter 'www.XXX.XXX|'. 
[Thu Jun 09 16:28:32 2016] [info] mod_wsgi (pid=15479): Adding '/var/www/html/mysite' to path. 
[Thu Jun 09 16:28:32 2016] [info] mod_wsgi (pid=15479): Adding '/usr/local/lib/python2.7/site-packages' to path. 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] mod_wsgi (pid=15479): Exception occurred processing WSGI script '/var/www/html/mysite/mysite/wsgi.py'. 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] Traceback (most recent call last): 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] File "/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 187, in __call__ 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]  self.load_middleware() 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 44, in load_middleware 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]  for middleware_path in settings.MIDDLEWARE_CLASSES: 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 54, in __getattr__ 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]  self._setup(name) 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 50, in _setup 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]  self._configure_logging() 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] File "/usr/local/lib/python2.7/site-packages/django/conf/__init__.py", line 80, in _configure_logging 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]  logging_config_func(self.LOGGING) 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] File "/usr/local/lib/python2.7/logging/config.py", line 794, in dictConfig 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]  dictConfigClass(config).configure() 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] File "/usr/local/lib/python2.7/logging/config.py", line 576, in configure 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11]  '%r: %s' % (name, e)) 
[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/debug.log' 

Я видел, что это было «отказано в», так что я ve run:

sudo chown -R www-data:www-data mysite 

А также:

sudo chmod -R 755 mysite 

Но это все еще не работает, я даже изменил одаривать на 777 для всей html директории, но это было бесполезно. Я не понимаю, почему появилась ошибка разрешения, есть ли что-нибудь, связанное с командой git, которую я запускаю?

PS: Я вообще не упоминается в /debug.log в моем settings.py, я писал:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': True, 
    'handlers': { 
    'file': { 
     'level': 'DEBUG', 
     'class': 'logging.FileHandler', 
     'filename': 'debug.log', 
    }, 
    }, 
    'loggers': { 
    'django.request': { 
     'handlers': ['file'], 
     'level': 'DEBUG', 
     'propagate': True, 
    }, 
    }, 
} 
+1

Что такое 'LOG_ROOT' в настройках? Я чувствую, что ваше приложение пытается получить доступ к абсолютному каталогу '/ debug.log', который является базовым каталогом в вашем Linux-окне. Если ваши настройки отслеживаются в режиме репо, попробуйте «git винить settings.py» и увидите изменения. –

+0

хорошо, кажется, что я не добавлял 'LOG_ROOT' в settings.py –

+0

Не входите в отдельный файл. Войдите в консольный обработчик и попросите mod_wsgi записать вывод журнала Django и отправить его в журнал ошибок Apache. Это лучший способ сделать это. См. Http://stackoverflow.com/questions/37736077/log-all-requests-to-file-django. Короче говоря, проблема заключается в том, что вы не можете использовать относительный путь для журнала, поскольку текущий рабочий каталог по умолчанию может быть любым, и если root каталог не будет доступен для записи. –

ответ

1

Проблема заключается в вашем settings.py в файле, в разделе, который контролирует ведение журнала.

[Thu Jun 09 16:28:32 2016] [error] [client 10.192.76.11] ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/debug.log' 

Хотя вы, безусловно, можете написать в /debug.log с соответствующими разрешениями, это маловероятное местоположение. Выберите более подходящую. Вы можете это сделать, изменив эту строку:

'filename': 'debug.log', 

в вашей настройке ведения журнала. Будьте уверены, чтобы дать полный путь, например, /tmp/debug.log или /var/log/httpd/debug.log

Если вы действительно хотите, чтобы написать этот файл сделать

sudo touch /debug.log 
sudo chown www-data:www-data /debug.log 

и перезагружать мод WSGI

+0

Я даже перезапускаю Apache, но получил ту же ошибку –

Смежные вопросы