2014-12-29 2 views
0

Я новичок в Django и веб-фракции.как отлаживать ошибку 200 на webfaction, которая регистрируется?

Я пытаюсь развернуть django проект по производству на webfaction

я выполнил все настройки согласно django Tuts.

syncdb не дал мне никаких ошибок на терминале.

перейти на сайт дает эту ошибку

200 Error 

The server encountered an internal error or misconfiguration and was unable to complete your request. 

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error. 

More information about this error may be available in the server error log. 

я обнаружил, что там были журналы в папке Apache. также были журналы в папках, называемых пользователем, и выходили в моем каталоге имени пользователя на верхнем уровне. какие журналы я вижу.

Что такое журналы доступа в каталоге пользователя? журналы ошибок в каталоге пользователя? журналы доступа в каталоге переднего конца? журналы ошибок в каталоге переднего конца? папка журналов в Apache?

также какая ошибка я получаю и как я могу решить ее лучше всего?

+0

200 не является ошибкой. Вы уверены, что не сказали 500? –

+0

Я обнаружил, что это связанная с веб-фракцией ошибка. – silverkid

ответ

2

Вы установили DEBUG=False в свои настройки? Если это так, вы должны добавить значение SECRET_KEY и настройку ALLOWED_HOSTS. Для получения дополнительных сведений об этих настройках ознакомьтесь с документами Django.

Кроме того, журналы на ~/log/user/error_yourapp.log - это то, что вам нужно проверить.

Однако ошибка 200 не является ошибкой сервера (500), и поэтому может не оказаться в этом журнале ошибок, если я не ошибаюсь.

Последним средством может быть создание пользовательского приложения, прослушивающего порт (и его подключение к веб-сайту). Затем SSH на свой аккаунт и запустите ./manage.py runserver localhost:YOURPORT и откройте yourproject.webfactional.com:YOURPORT. Если сервер выходит из строя, вы должны увидеть трассировку прямо там, в терминале.

+0

log, log.1, log.2 ... в чем смысл 1 2 и т. Д. – silverkid

+0

Я думаю, что это какой-то способ apache, удостоверяющий, что файлы не становятся слишком большими. Просто игнорируйте пронумерованные и всегда смотрите на нижнюю часть без номера. (С помощью Vim вы можете быстро добраться до нижней части файла, нажав 'SHIFT + G') – mbrochh

+0

Я видел в журнале, что есть ошибка импорта settings.py. путь sys не содержит путь к настройкам. syspath указывает на home/username/lib/python2.6 ... Я не могу добавить путь к расположению файла настроек – silverkid

1

Ошибка «200 ошибок» от приложения mod_wsgi - это действительно internal server error.

mod_wsgi 3,4 введен некоторый новый код, который возвращает «200 Error» Строка состояния:

/* 
* Look for the special case of status being 200 but the 
* status line indicating an error and translate it into a 
* 500 error so that error document processing will occur 
* for those cases where WSGI application wouldn't have 
* supplied their own error document. We used to use 0 
* here for status but Apache 2.4 prohibits it now. 
*/ 

..... 

/* 
* Execute the actual target WSGI application. In 
* normal cases OK should always be returned. If 
* however an error occurs in importing or executing 
* the script or the Python code raises an exception 
* which is not caught and handled, then an internal 
* server error can be returned. As we don't want to 
* be triggering any error document handlers in the 
* daemon process we use a fake status line with 0 
* as the status value. This will be picked up in 
* the Apache child process which will translate it 
* back to a 500 error so that normal error document 
* processing occurs. 
*/ 

r->status = HTTP_OK; 

if (wsgi_execute_script(r) != OK) { 
    r->status = HTTP_INTERNAL_SERVER_ERROR; 
    r->status_line = "200 Error"; 
} 

Apache интерпретирует это как ошибку 500, и вы увидите код 500 статус в журналах, но сгенерированный заголовок страницы с ошибкой Apache отобразит строку состояния «Ошибка 200».