2015-04-25 3 views
2

Я использую систему x86_64 Ubuntu 14.10 с программированием в ниже:Apache2 не может загрузить wsgi.py

  • Python 3.4
  • apache2
  • libapache2-мод-WSGI-PY3
  • django1.8

Я создал проект django1.8 a т этот путь:

/var/www/html/koorimeo 

Я заметил, что Джанго-администратор startproject создаст файл wsgi.py по умолчанию, и я не изменить его содержание.

Я настроил apache2 под официальным документом (Как использовать Django с Apache и mod_wsgi) Детали:

Я модифицировал 000-default.conf, ибо я не хочу, чтобы настроить другой виртуальный хост. И вот что я добавил:

#000-default.conf 
<VirtualHost *:80> 
... 
<Directory /var/www/html/koorimeo/koorimeo> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
</Directory> 
... 
</VirtualHost> 

После этого я объявляю WSGIAlias ​​и WSGIPythonPath в apache2.conf:

#apache2.conf 
#I want to leave "/" for other use... 
WSGIScriptAlias /koorimeo /var/www/html/koorimeo/koorimeo/wsgi.py 
WSGIPythonPath /var/www/html/koorimeo/koorimeo 

После завершения настройки файлов я перезагрузил apache2 службу и войти в 127.0.0.1/koorimeo, он возвращается сообщением об ошибке 500 ... я посмотрел файл журнал ошибок и получить эти сообщения об ошибке:

[email protected]:/var/log/apache2$ tail error.log 
[Sat Apr 25 14:35:31.214661 2015] [:notice] [pid 16997:tid 140004070725504] mod_python: Creating 8 session mutexes based on 6 max processes and 25 max threads. 
[Sat Apr 25 14:35:31.214705 2015] [:notice] [pid 16997:tid 140004070725504] mod_python: using mutex_directory /tmp 
[Sat Apr 25 14:35:31.232634 2015] [:warn] [pid 16997:tid 140004070725504] mod_wsgi: Compiled for Python/3.4.0. 
[Sat Apr 25 14:35:31.232682 2015] [:warn] [pid 16997:tid 140004070725504] mod_wsgi: Runtime using Python/2.7.6. 
[Sat Apr 25 14:35:31.232766 2015] [mpm_event:notice] [pid 16997:tid 140004070725504] AH00489: Apache/2.4.7 (Ubuntu) mod_python/3.3.1 Python/2.7.6 mod_wsgi/3.4 configured -- resuming normal operations 
[Sat Apr 25 14:35:31.232786 2015] [core:notice] [pid 16997:tid 140004070725504] AH00094: Command line: '/usr/sbin/apache2' 
[Sat Apr 25 14:35:32.234958 2015] [core:notice] [pid 16997:tid 140004070725504] AH00051: child pid 18325 exit signal Aborted (6), possible coredump in /etc/apache2 
[Sat Apr 25 14:35:32.235070 2015] [core:notice] [pid 16997:tid 140004070725504] AH00051: child pid 18326 exit signal Aborted (6), possible coredump in /etc/apache2 
[Sat Apr 25 14:35:34.041184 2015] [:error] [pid 18599:tid 140003960342272] [client 127.0.0.1:51134] mod_wsgi (pid=18599): Target WSGI script '/var/www/html/koorimeo/koorimeo/wsgi.py' cannot be loaded as Python module., referer: http://localhost/ 
[Sat Apr 25 14:35:34.041279 2015] [:error] [pid 18599:tid 140003960342272] [client 127.0.0.1:51134] mod_wsgi (pid=18599): Exception occurred processing WSGI script '/var/www/html/koorimeo/koorimeo/wsgi.py'., referer: http://localhost/ 

по этим сообщениям я обнаружил, что apache2 ч п не найти этот модуль:

/var/www/html/koorimeo/wsgi.py 

Я скопировать этот путь и попытаться заставить меня ясно погоду этого файл существует:

[email protected]:/var/log/apache2$ ls /var/www/html/koorimeo/koorimeo/wsgi.py -l 

и система возвращает это сообщение, которое сказало мне, что файл действительно существует ...

-rw-rw-r-- 1 bing bing 389 4月 25 14:21 /var/www/html/koorimeo/koorimeo/wsgi.py 

И я также убедиться, что я установил libapache2-мод-WSGI-PY3, я нашел wsgi.so в нужном месте.

Я нашел wsgi.load в режимах включения и указал wsgi.so в нужном месте:

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so 

Итак ... Я запуталась ...

Пожалуйста, скажите мне, почему не может apache2 найти это wsgi.py файл?

+1

Нет, ошибка не говорит, что не может найти его; он говорит, что у него были проблемы с загрузкой файла. Вероятно, это связано с зависимостями; вы установили Django? И почему вы не используете virtualenv? –

+0

Я новичок в django, и я даже не знаю, что такое virtualenv .... – Bing

+0

Я уверен, что я установил Django с исходным кодом .. Я загрузил пакет tar.gz, затем извлекил и использовал команду «sudo python setup.py install ", чтобы закончить процесс установки – Bing

ответ

2

Удалить mod_python из Apache, если вы его не используете.

Ваш модуль mod_wsgi был скомпилирован для Python 3.4.0, но mod_python был скомпилирован для 2.7.6. Поскольку mod_python использует другую версию, он переопределяет версию Python, и это остановит работу mod_wsgi.

Прочитайте много разделов в документации, начиная с:

+0

Спасибо! С вашим советом я никогда не заметлю это сообщение в журнале ... И как я небрежно, что я даже никогда не слежу за этой информацией ... – Bing

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