Проблема с загрузкой модуля mod_wsgi в apache на 64-битной Windows

Я пытаюсь установить модуль mod_wsgi, следуя этой инструкции. Я скачал mod_wsgi.so из этого источника. Похоже, что apache не может правильно перезапустить службы, и страница не может быть загружена после того, как я добавил следующую строку в httpd.conf

LoadModule wsgi_module modules/mod_wsgi.so

Я проверил некоторые проблемы из некоторых источников следующим образом:

  1. Имя файла правильное - mod_wsgi.so не mod_wsgi.so.so
  2. Разрешения для файла были установлены такие же, как и для других модулей, которые загружались правильно.
  3. Python установлен для всех пользователей

Окружающая обстановка:

  • Windows Server® Standard FE, 64-разрядная версия
  • Apache 2.2.8 на WAMP 2.0
  • Python 2.7.1 установлен для всех пользователей

Без загрузки этого модуля apache работает правильно. В чем моя проблема?

Ошибка приложения.лог:

[Mon May 23 10:12:20 2011] [notice] Parent: Received shutdown signal -- Shutting down the server.
[Mon May 23 10:12:20 2011] [notice] Child 4528: Exit event signaled. Child process is ending.
[Mon May 23 10:12:21 2011] [notice] Child 4528: Released the start mutex
[Mon May 23 10:12:22 2011] [notice] Child 4528: All worker threads have exited.
[Mon May 23 10:12:27 2011] [notice] Child 4528: Child process is exiting
[Mon May 23 10:12:28 2011] [notice] Parent: Child process exited successfully.
[Mon May 23 10:13:46 2011] [notice] Apache/2.2.8 (Win32) PHP/5.2.6 configured -- resuming normal operations
[Mon May 23 10:13:46 2011] [notice] Server built: Jan 18 2008 00:37:19
[Mon May 23 10:13:46 2011] [notice] Parent: Created child process 5316
[Mon May 23 10:13:46 2011] [notice] Child 5316: Child process is running
[Mon May 23 10:13:46 2011] [notice] Child 5316: Acquired the start mutex.
[Mon May 23 10:13:46 2011] [notice] Child 5316: Starting 64 worker threads.
[Mon May 23 10:13:46 2011] [notice] Child 5316: Starting thread to listen on port 81.
[Mon May 23 10:14:57 2011] [notice] Parent: Received shutdown signal -- Shutting down the server.
[Mon May 23 10:14:57 2011] [notice] Child 5316: Exit event signaled. Child process is ending.
[Mon May 23 10:14:58 2011] [notice] Child 5316: Released the start mutex
[Mon May 23 10:14:59 2011] [notice] Child 5316: All worker threads have exited.
[Mon May 23 10:15:04 2011] [notice] Child 5316: Child process is exiting
[Mon May 23 10:15:04 2011] [notice] Parent: Child process exited successfully.

Из apache error.log понятно, что установленный apache 32-битный?

Решение: измените все на 64-разрядное.


person Protocole    schedule 23.05.2011    source источник
comment
@cgohlke Python 64-битный, но я понятия не имею, как проверить, является ли wamp 32-битным или 64-битным. Правда ли, что wamp 2.0 имеет только 32-битную версию? Журнал ошибок Apache был добавлен к моему вопросу.   -  person Protocole    schedule 24.05.2011
comment
У меня была такая же проблема, но в итоге я установил 32-битный Python для решения.   -  person jdickson    schedule 28.03.2012


Ответы (3)


Я тоже столкнулся с этой ситуацией, и Apache будет работать на 64-битных окнах, но не будет, если загружен mod_wsgi.

Я нашел решение, которое довольно просто:

  1. Загрузите и установите 64-разрядную версию Apache, с которой легко справиться, если загрузить и установить ее с http://www.wampserver.com/en
  2. Загрузите mod_wsgi с этой страницы.
  3. Извлеките содержимое загруженного заархивированного файла в c:\wamp\bin\apache\Apache2.2.21\modules\ и
  4. Отредактируйте httpd.conf и добавьте строку вида: LoadModule wsgi_module modules/mod_wsgi.so
  5. Перезапустите apache, и вы сможете продолжить разработку django.

Резюме: все (и apache, и mod_wsgi) должно быть 64-битным, чтобы вы могли запускать Apache/mod_wsgi на 64-битных окнах.

person Peter    schedule 11.05.2012
comment
Добавлю сюда, что это включает в себя php и phpmyadmin, пару вещей, которые вы, вероятно, не хотите оставлять включенными, если вы их не используете, поэтому вы можете закомментировать все строки с php на них. - person boatcoder; 25.07.2014

Насколько я понимаю...

В настоящее время не существует официальных 64-разрядных версий Apache и PHP для Microsoft Windows.

Однако есть чувак, который на момент написания этой статьи как минимум скомпилировал Apache 2.2.19 x64 для нас, которую вы можете загрузить здесь.

Если вам нужна более новая версия, вам придется скомпилировать ее самостоятельно, но это довольно сложная задача!

Более того, даже если вы добились того, чтобы Apache x64 нормально работал в Windows, что вы собираетесь делать с mod_wsgi? Именно по этой причине я решил просто создать стек Arch Linux LAMP именно для этой цели. Теперь он работает нормально, но, поскольку Aptana не синхронизируется с проектами Django, я снова изучаю решения для Windows.

Пожалуйста, дайте мне знать, если вы найдете хорошее решение!

РЕДАКТИРОВАТЬ: я нашел эти 64-битные mod_wsgi для py2.6 и 2.7, но Мне еще предстоит заставить их работать.

РЕДАКТИРОВАТЬ: Да! У меня это работает! Мой монитор службы Apache горит зеленым светом и теперь говорит Apache/2.2.19 (Win64) mod_wsgi/3.3 Python/2.6.4. Я использую 2.6.4, потому что на нем работает Autodesk Maya, и я хочу сохранить ту же версию для согласованности.

person jedmao    schedule 20.11.2011
comment
Подтверждена работа: mod_wsgi-3.4/apache 2.2/x64/python 2.7 - person drtf; 18.09.2013

Я запустил Apache/Mod_wsgi на сервере Windows 2008.

Ссылка на 64-битную версию Apache, предоставленная Питером, не работает. Я нашел один, который работал для меня в:

http://www.apachelounge.com/download/win64/

Прочтите файл readme.txt. Установка очень проста.

Его ссылка на 64-битный mod_wsgi все еще хороша:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

Я отлично использовал версию win-amd64, и я думаю, что у меня аппаратное обеспечение Intel.

Я убедился, что версии Apache и Mod_wsgi совпадают, как и версия Python. Я полагаю, что версия mod_wsgi, которую я использовал, была 3.3.

person Jim Paul    schedule 26.02.2013
comment
Ссылка в сообщении @Peter была исправлена. - person boatcoder; 25.07.2014