Модуль Apache WSGI не запускается с помощью net start apache2.4, но работает с httpd.exe
В настоящее время я столкнулся с проблемой при установке сервера Apache на Windows. Мне удалось успешно запустить Apache с помощью httpd.exe, но когда я пытаюсь запустить его с помощью net start apache2.4
, служба не запускается, и я получаю ошибку в Event Viewer (при этом соответствующий журнал ошибок Apache отсутствует)
Детали системы
- Версия Apache: Apache 2.4 (64-bit)
- Python Версия: Python 3.13
- mod_wsgi Версия: 5.0.1 (64-bit)
- Django App Path: C:/webapp .
- WSGI Module Path: C:/Users/{me}/AppData/Local/Programs/Python/Python313/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp313-win_amd64.pyd
Что я пробовал
1. Запуск httpd.exe напрямую:
- Apache успешно запускается и обслуживает мое приложение Django, как и ожидалось.
- Никаких проблем с приложением Django или модулем WSGI при запуске вручную.
**2. Бег httpd -t
**
- Возвращает
Syntax OK
.
3. Ошибка средства просмотра событий Windows:
- При запуске Apache с помощью net start apache2.4 я вижу следующую ошибку в средстве просмотра событий:
The Apache service named reported the following error:
>>> httpd.exe: Syntax error on line 194 of C:/Apache24/conf/httpd.conf:
Cannot load C:/Users/{me}/AppData/Local/Programs/Python/Python313/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp313-win_amd64.pyd
into server: The specified module could not be found. .
4. Проверенные пути к файлам:
- Я подтвердил, что файл mod_wsgi существует именно в том месте, которое указано в файле httpd.conf:
c:\Apache24\bin>dir "C:\Users\{me}\AppData\Local\Programs\Python\Python313\Lib\site-packages\mod_wsgi\server"
Volume in drive C is Windows
Volume Serial Number is 8205-BA06
Directory of C:\Users\{me}\AppData\Local\Programs\Python\Python313\Lib\site-packages\mod_wsgi\server
10/23/2024 02:49 PM <DIR> .
10/23/2024 02:49 PM <DIR> ..
10/23/2024 02:49 PM 1,097 apxs_config.py
10/23/2024 02:49 PM 3,563 environ.py
10/23/2024 02:49 PM <DIR> management
10/23/2024 02:49 PM 134,656 mod_wsgi.cp313-win_amd64.pyd
10/23/2024 02:49 PM 138,014 __init__.py
10/23/2024 02:49 PM <DIR> __pycache__
4 File(s) 277,330 bytes
4 Dir(s) 56,747,614,208 bytes free
Что смущает
- Apache работает нормально при использовании
httpd.exe
, но не работает при использованииnet start apache2.4
. - В журналах Apache не регистрируется ни одна ошибка (ни в журнале ошибок, ни в журнале доступа).
- Модуль mod_wsgi загружается без проблем при запуске вручную, но не как служба.
Конфигурация
- httpd.conf (загрузка mod_wsgi):
LoadModule wsgi_module "C:/Users/{me}/AppData/Local/Programs/Python/Python313/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp313-win_amd64.pyd"
WSGIPythonHome "C:/Users/{me}/AppData/Local/Programs/Python/Python313"
WSGIPythonPath "C:/{my_webapp}"
- Конфигурация виртуального хоста:
<VirtualHost *:80>
ServerName .com
ServerAlias www.{my_webapp}.com
DocumentRoot "C:/{my_webapp}"
WSGIScriptAlias / C:/{my_webapp}/{my_webapp}/wsgi.py
WSGIApplicationGroup %{GLOBAL}
LogLevel info wsgi:debug
<Directory C:/{my_webapp}/{my_webapp}>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ C:/{my_webapp}/static/
<Directory C:/{my_webapp}/static>
Require all granted
</Directory>
ErrorLog "C:/Apache24/logs/{my_webapp}_error.log"
CustomLog "C:/Apache24/logs/{my_webapp}_access.log" common
</VirtualHost>
Шаги, предпринятые на данный момент
- Убедитесь, что Apache и mod_wsgi являются 64-битными.
- Подтвердите правильность путей к Python и mod_wsgi.
- Успешно запустил httpd.exe, подтвердив, что установка работает вручную. Проверил Windows Event Viewer на наличие ошибок, но не увидел никаких дополнительных сведений, зарегистрированных в журнале ошибок Apache.
Мой вопрос
Почему Apache может запускаться через httpd.exe, но не работает при использовании net start apache2.4? Как я могу устранить неполадки, особенно учитывая отсутствие журналов в Apache?
Релевантные сообщения
- mod_wsgi not found for apache/windows
- https://serverfault.com/questions/1070563/why-is-apache2-not-finding-my-wsgi-app
- https://groups.google.com/g/modwsgi/c/RVD1hIxb2eI
Любая помощь или предложения будут высоко оценены! Заранее спасибо.
по последней ссылке в соответствующих постах.
бежать mod_wsgi-express module-config
замените то, что у меня было в httpd.conf на загрузку с выводом:
LoadFile "C:/Users/{me}/AppData/Local/Programs/Python/Python313/python313.dll"
LoadModule wsgi_module "C:/Users/{me}/AppData/Local/Programs/Python/Python313/Lib/site-packages/mod_wsgi/server/mod_wsgi.cp313-win_amd64.pyd"
WSGIPythonHome "C:/Users/{me}/AppData/Local/Programs/Python/Python313"