На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: RaD
  
    > Django. Установка и настройка , При завершении настроек возникает ошибка "Internal Server Error"
      Здравствуйте! Решил узучить Django. Но начать не с встроенного сервера, а с настроек полной боевой конфигурации Apache (httpd-2.2.22-win32-x86-openssl-0.9.8t) + Python 2.7.2 + mod_wsgi 3.3 под Windows XP.
      Все скачал, поставил.
      Вот файлик vhost апачевский:
      • <VirtualHost 127.0.0.1:80>
      • ServerName spacelab-kfu.ru
      • DocumentRoot "D:/WEBWORK/sites/spacelab/"
      • Alias /media/ "D:/WEBWORK/sites/spacelab/media"
      • <Location "D:/WEBWORK/sites/spacelab/media">
      • SetHandler None
      • </Location>
      • <Directory "D:/WEBWORK/sites/spacelab/media">
      • Order allow,deny
      • Options Indexes
      • Allow from all
      • IndexOptions FancyIndexing
      • </Directory>
      • Alias /admin_media/ "D:/WEBWORK/Python/Lib/site-packages/django/contrib/admin/media/"
      • <Location "/admin_media/">
      • SetHandler None
      • </Location>
      • <Directory "D:/WEBWORK/Python/Lib/site-packages/django/contrib/admin/media">
      • Order allow,deny
      • Options Indexes
      • Allow from all
      • IndexOptions FancyIndexing
      • </Directory>
      • WSGIScriptAlias / "D:/WEBWORK/sites/spacelab/mod.wsgi"
      • <Directory "D:/WEBWORK/sites/spacelab">
      • Order allow,deny
      • Allow from all
      • </Directory>
      • </VirtualHost>


      вот файл mod.wsgi:
      • import os, sys
      • sys.path.insert(0, 'D:\\WEBWORK\\Python\\Lib\\site-packages\\')
      • sys.path.insert(0, 'D:\\WEBWORK\\Python\\')
      • sys.path.append('D:\\WEBWORK\\sites\\spacelab') #Указывайте ваши пути
      • sys.path.append('D:\\WEBWORK\\Django\\')
      • #os.environ['DJANGO_SETTINGS_MODULE'] = 'D:\\WEBWORK\\sites\\spacelab\\settings.py'
      • os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
      • import django.core.handlers.wsgi
      • application = django.core.handlers.wsgi.WSGIHandler()

      вот список ошибок:
      • httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
      • [Wed Feb 01 14:44:56 2012] [warn] mod_wsgi: Compiled for Python/2.7.
      • [Wed Feb 01 14:44:56 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
      • [Wed Feb 01 14:44:56 2012] [notice] Apache/2.2.22 (Win32) mod_wsgi/3.3 Python/2.7.2 configured -- resuming normal operations
      • [Wed Feb 01 14:44:56 2012] [notice] Server built: Jan 28 2012 11:16:39
      • [Wed Feb 01 14:44:56 2012] [notice] Parent: Created child process 17832
      • httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
      • httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
      • [Wed Feb 01 14:44:56 2012] [warn] mod_wsgi: Compiled for Python/2.7.
      • [Wed Feb 01 14:44:56 2012] [warn] mod_wsgi: Runtime using Python/2.7.2.
      • [Wed Feb 01 14:44:56 2012] [notice] Child 17832: Child process is running
      • [Wed Feb 01 14:44:56 2012] [notice] Child 17832: Acquired the start mutex.
      • [Wed Feb 01 14:44:56 2012] [notice] Child 17832: Starting 64 worker threads.
      • [Wed Feb 01 14:44:56 2012] [notice] Child 17832: Starting thread to listen on port 80.
      • [Wed Feb 01 14:45:01 2012] [error] [client 127.0.0.1] mod_wsgi (pid=17832, process='', application='spacelab-kfu.ru|'): Failed to parse WSGI script file 'D:/WEBWORK/sites/spacelab/mod.wsgi'.
      • [Wed Feb 01 14:45:01 2012] [error] [client 127.0.0.1] mod_wsgi (pid=17832): Exception occurred processing WSGI script 'D:/WEBWORK/sites/spacelab/mod.wsgi'.
      • [Wed Feb 01 14:45:01 2012] [error] [client 127.0.0.1] File "D:/WEBWORK/sites/spacelab/mod.wsgi", line 5
      • [Wed Feb 01 14:45:01 2012] [error] [client 127.0.0.1] SyntaxError: Non-ASCII character '\\xd3' in file D:/WEBWORK/sites/spacelab/mod.wsgi on line 5, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
      Как исправить ошибки?
        Цитата Гимнаст @
        [*]httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
        [Wed Feb 01 14:44:56 2012] [notice] Child 17832: Starting thread to listen on port 80

        Эта простая ошибка. Какая-то программа заняла порт 80. Чаще всего Skype занимает этот порт.(сам однажды сталкивался)
        Для устранения проблемы:
        Панель управления - Программы и компоненты - Включение или отключение компонентов Windows - Службы IIS.
        Убрать галочку, OK, перезагрузить компьютер.

        Может быть и другая проблема.
        Цитата
        Если на компьютере включен Брандмауэр Windows или
        другой сетевой экран, то необходимо добавить Web-сервер Apache в список
        исключений.Обычно при первом запуске (сразу после установки) выводится
        запрос о блокировании программы. В этом диалоговом окне следует нажать
        кнопку Разблокировать. Если диалоговое окно не отобразилось, то необхо-
        димо вручную добавить Apache в список исключений. Для этого (для Бранд-
        мауэра Windows) в меню Пуск выбираем Настройка | Панель управления.
        Далее выбираем пункт Брандмауэр Windows. В открывшемся окне выбира-
        ем вкладку Исключения. Если в списке нет пункта Apache HTTP Server,
        нажимаем Добавить программу. В открывшемся окне нажимаем кнопку
        Обзор. Находим файл httpd.exe (C:\Apache2\bin\httpd.exe или какая-то своя директория) и нажимаем От-
        крыть, после чего нажимаем OK.
        Сообщение отредактировано: Gena_96 -
          Gena_96, вообще-то это ошибка означает что нет соответствия указанного имени и IP-адреса. На работоспособность сервера не повлияет.

          Гимнаст, у тебя ошибка из-за наличия в wsgi файле кириллицы без указания кодировки в начале файла. В логе ведь ясно сказано что ошибка в 5-ой строке. Напиши в первой строке:
          ExpandedWrap disabled
            # -*- coding: твоя_кодировка -*-
            gruy, да, спс, UTF8 поставил.
            Но возникла другая проблема. Рабочай папка D:\WEBWORK. В ней создан проект spacelab, в который добавлено приложение app1.
            Есть 2 вопроса:
            1) если поменять в settings.py 'app1' на spacelab.app1 как быть и должно по идее, мне в лонах апача пишет, что мол нет такого(если оставить то на ЭТО не ругается):
            settings.py кусок:
            ExpandedWrap disabled
              INSTALLED_APPS = (
                  'django.contrib.auth',
                  
                  'django.contrib.admin',
                  
                  
                  'django.contrib.contenttypes',
                  'django.contrib.sessions',
                  'django.contrib.sites',
                  'django.contrib.messages',
                  'django.contrib.staticfiles',
                  #'spacelab.app1',
                  'app1',
                  # Uncomment the next line to enable the admin:
                  # 'django.contrib.admin',
                  # Uncomment the next line to enable admin documentation:
                  # 'django.contrib.admindocs',
              )


            error:
            ExpandedWrap disabled
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] mod_wsgi (pid=3256): Exception occurred processing WSGI script 'D:/WEBWORK/sites/spacelab/mod.wsgi'.
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 272, in __call__
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     response = self.get_response(request)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\core\\handlers\\base.py", line 169, in get_response
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\core\\handlers\\base.py", line 203, in handle_uncaught_exception
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return debug.technical_500_response(request, *exc_info)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\views\\debug.py", line 59, in technical_500_response
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     html = reporter.get_traceback_html()
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\views\\debug.py", line 151, in get_traceback_html
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return t.render(c)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 123, in render
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return self._render(context)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 117, in _render
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return self.nodelist.render(context)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 744, in render
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     bits.append(self.render_node(node, context))
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\debug.py", line 73, in render_node
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     result = node.render(context)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\debug.py", line 90, in render
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     output = self.filter_expression.resolve(context)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\base.py", line 536, in resolve
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     new_obj = func(obj, *arg_vals)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\template\\defaultfilters.py", line 695, in date
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return format(value, arg)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 285, in format
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return df.format(format_string)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 30, in format
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     pieces.append(force_unicode(getattr(self, piece)()))
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 191, in r
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return self.format('D, j M Y H:i:s O')
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\dateformat.py", line 30, in format
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     pieces.append(force_unicode(getattr(self, piece)()))
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\encoding.py", line 71, in force_unicode
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     s = unicode(s)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\functional.py", line 206, in __unicode_cast
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return self.__func(*self.__args, **self.__kw)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\__init__.py", line 81, in ugettext
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return _trans.ugettext(message)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 286, in ugettext
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     return do_translate(message, 'ugettext')
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 276, in do_translate
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     _default = translation(settings.LANGUAGE_CODE)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 185, in translation
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     default_translation = _fetch(settings.LANGUAGE_CODE)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 162, in _fetch
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     app = import_module(appname)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]   File "D:\\WEBWORK\\Python\\lib\\site-packages\\django\\utils\\importlib.py", line 35, in import_module
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1]     __import__(name)
              [Wed Feb 01 21:09:43 2012] [error] [client 127.0.0.1] TemplateSyntaxError: Caught ImportError while rendering: No module named spacelab.app1

            2) как избавится от вот этой ошибки?
            ExpandedWrap disabled
              ImportError at /
              [B]No module named spacelab.urls   [/B]    Request Method:  GET
              Request URL:    http://spacelab-kfu.ru/
              Django Version: 1.3.1
              Exception Type: ImportError
              Exception Value:    No module named spacelab.urls
              Exception Location: D:\WEBWORK\Python\lib\site-packages\django\utils\importlib.py in import_module, line 35
              Python Executable:  D:\WEBWORK\Apache\bin\httpd.exe
              Python Version: 2.7.2
              Python Path:    ['D:/WEBWORK/sites/spacelab',
               'C:\\WINDOWS\\system32\\python27.zip',
               'D:\\WEBWORK\\Python\\Lib',
               'D:\\WEBWORK\\Python\\DLLs',
               'D:\\WEBWORK\\Python\\Lib\\lib-tk',
               'D:\\WEBWORK\\Apache',
               'D:\\WEBWORK\\Apache\\bin',
               'D:\\WEBWORK\\Python',
               'D:\\WEBWORK\\Python\\lib\\site-packages']
              Server time:    Wed, 1 Feb 2012 21:12:36 +0300


            mod.wsgi:
            ExpandedWrap disabled
              # -*- coding: utf-8 -*-
              import sys
              import os
              import os.path
               
              sys.path.insert(0, os.path.dirname(__file__))
              os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
               
              from django.core.handlers.wsgi import WSGIHandler
              application = WSGIHandler()


            urls.py:
            ExpandedWrap disabled
              # -*- coding: utf-8 -*-
              from django.conf.urls.defaults import *
               
              # Uncomment the next two lines to enable the admin:
              from django.contrib import admin
              admin.autodiscover()
               
              urlpatterns = patterns('',
                  # Example:
                  # (r'^mysite/', include('mysite.foo.urls')),
                   (r'^spacelab/', include('spacelab.urls')),
                  # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
                  # to INSTALLED_APPS to enable admin documentation:
                   (r'^admin/doc/', include('django.contrib.admindocs.urls')),
               
                  # Uncomment the next line to enable the admin:
                  (r'^admin/', include(admin.site.urls)),
              )


            vhost:
            ExpandedWrap disabled
              <VirtualHost 127.0.0.1:80>
                  ServerName spacelab-kfu.ru
                  DocumentRoot "D:/WEBWORK/sites/spacelab/"
               
                  Alias /media/ "D:/WEBWORK/sites/spacelab/media"
                  <Location "D:/WEBWORK/sites/spacelab/media">
                      SetHandler None
                  </Location>
                  <Directory "D:/WEBWORK/sites/spacelab/media">
                      Order allow,deny
                      Options Indexes
                      Allow from all
                      IndexOptions FancyIndexing
                  </Directory>
                 Alias /admin_media/ "D:/WEBWORK/Python/Lib/site-packages/django/contrib/admin/media/"
                  <Location "/admin_media/">
                      SetHandler None
                  </Location>
                 <Directory "D:/WEBWORK/Python/Lib/site-packages/django/contrib/admin/media">
                      Order allow,deny
                      Options Indexes
                      Allow from all
                      IndexOptions FancyIndexing
                  </Directory>
               
                  WSGIScriptAlias / "D:/WEBWORK/sites/spacelab/mod.wsgi"
                  <Directory "D:/WEBWORK/sites/spacelab">
                      Order allow,deny
                      Allow from all
                  </Directory>    
              </VirtualHost>
              spacelab - это каталог всего проекта, mod.wsgi у тебя лежит в нем же, и ты добавляешь в системный путь этот же каталог spacelab. Таким образом сам spacelab не является доступным для вызова в качестве модуля, а только его содержимое. Можно сделать, например, так:
              ExpandedWrap disabled
                d = os.path.dirname(os.path.realpath(__file__))
                sys.path.append(os.path.join(d, '../'))
                sys.path.append(d)
                gruy, огромное спасибо!!!
                У меня была таже проблема, я чуть голову не сломал (только начинаю знакомиться с апач+dlango).

                Просьба, можно чуть подробнее объяснить этот момент:
                Цитата
                spacelab - это каталог всего проекта, mod.wsgi у тебя лежит в нем же, и ты добавляешь в системный путь этот же каталог spacelab. Таким образом сам spacelab не является доступным для вызова в качестве модуля, а только его содержимое.


                Работать-то заработало, но ещё хочу понять почему не работало...
                  Python ищет указываемый модуль в каталогах, которые ему указывают (sys.path). Если у тебя проект в /path/to/project, и весь этот путь добавлен в sys.path, то при попытке импорта project он будет искаться в /path/to/project. Поэтому и нужно было указывать путь в sys.path только как /path/to.
                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0346 ]   [ 14 queries used ]   [ Generated: 14.05.24, 15:32 GMT ]