Как разместить Django1.3.1 в Apache2.2?
Я использую Python 2.7.2,Django 1.3.1, Apache 2.2.22 на WindowsXP(win32). По документации, которую я нашел здесь, я сделал шаг за шагом, но когда дается раздел каталога
`Alias /media/ C:/Programs/TestDjango/mysite/media/
<Directory C:/Programs/TestDjango/mysite/media/>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / C:/Programs/TestDjango/mysite/apache/django.wsgi
<Directory C:/Programs/TestDjango/mysite/apache>
Order deny,allow
Allow from all
</Directory>`
и перезапустил Apache. При открытии localhost/mysite я получаю сообщение об ошибке времени выполнения библиотеки Microsoft Visual C++, и в журнале ошибок Apache отображается сообщение "Ошибка при неправильной настройке при рендеринге: ошибка при загрузке модуля pyodbc: сбой загрузки DLL: процедура инициализации библиотеки динамических ссылок (DLL)" Ошибка. ".... Мое приложение Django работает в WAMP, но я хочу знать, где я ошибся, используя только Apache2.2.22. Следовал многим документациям на Django, но всё так же. Пожалуйста, помогите мне найти, где я ошибся. Спасибо
(Идентификация была исправлена Геттли)
2 ответа
Я понял это, это была проблема с версией, так как я работал с Apache 2.2.21 вместо Apache 2.2.22, он работает. я следовал за шагом в этой ссылке.
Установите Python 2.7.2, Django 1.3.1 и Apache2.2.21. Установите модуль modwsgi.
Файл модуля будет иметь имя что-то вроде mod_wsgi-win32-ap22py26-2.6.so get mod_wsgi.
Скопируйте его в каталог модулей установки Apache. Например, C:/Program Files/Apache Software Foundation/Apache2.2/modules.
Переименуйте его в mod_wsgi.so. Щелкните правой кнопкой мыши -> Свойства щелкните Разблокировать и применить
Откройте файл Apache http.conf.
Добавьте строку LoadModule wsgi_module modules/mod_wsgi.so перед всеми другими записями LoadModule.
Сконфигурируйте Apache для своего проекта Django, добавив в конец http.conf следующее:
# Static content
Alias /media/ C:/Programs/TestDjango/mysite/media/
<Directory C:/Programs/TestDjango/mysite/media/>
Order deny,allow
Allow from all
</Directory>
# Django dynamic content
WSGIScriptAlias / C:/Programs/TestDjango/mysite/apache/django.wsgi
<Directory C:/Programs/TestDjango/mysite/apache>
Order deny,allow
Allow from all
</Directory>`
Где icardtest является корнем проекта Django. Пути ниже icardtest будут специфичны для вашего проекта. Эта конфигурация обслуживает все статические носители через пространство URL /media/, а все остальные - через WSGI и Django. Создайте файл django.wsgi и добавьте в него следующее:
` import os
import sys
sys.path.append('C:/Programs/TestDjango')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()`
Перезапустите Apache.
Ваша ошибка связана с настройкой Python, а не с Apache.
Error loading pyodbc module: DLL load failed: A dynamic link library (DLL) initialization routine failed.
Это означает, что Python, который вы используете с Apache, не может загрузить pyodbc
модуль. Как только вы исправите эту ошибку, вы можете продолжить.