Я отправляю это на будущее для всех, кто столкнется с этим *
Позже, когда я проверил и обнаружил, что файлы stati c обслуживаются и только страницы не могут быть загружены. В старой конфигурации были проблемы в WSGIDaemonProcess
. Значения python-home
и python-path
неверны. Дальнейшее чтение docs в разделе WSGIDaemonProcess
Я изменил значения соответственно. После некоторого следа и ошибки я смог запустить приложение. Это еще не все. Необходимо поработать над перезагрузкой обновлений приложения.
Во время экспериментов с конфигурацией, Внутренняя ошибка сервера произошла, когда я изменил WSGIDaemonProcess testdjango python-path=/home/user/public_html/demo/django python-home=/home/user/public_html/demo/django/venv/lib/python3.6/site-packages
на WSGIDaemonProcess testdjango python-path=/home/user/public_html/demo/django python-home=/home/user/public_html/demo/django/venv
.
с docs in WSGIDaemonProcess
section
python -home = directory Задайте расположение виртуальной среды Python, которая будет использоваться процессами демона. Используемый каталог - это тот, который sys.prefix
установлен для виртуальной среды Python. Виртуальная среда может быть создана с помощью virtualenv
, pyvenv
или python -m venv
. Обратите внимание, что виртуальная среда Python должна быть создана с использованием той же базовой версии Python, которая использовалась для компиляции модуля mod_wsgi. Вы не можете использовать это, чтобы заставить mod_wsgi каким-то образом использовать другую версию Python, чем она была скомпилирована. Если вы хотите использовать другую версию Python, вам нужно будет переустановить mod_wsgi, скомпилировав его для нужной вам версии. Один экземпляр mod_wsgi не может одновременно запускать приложения для Python 2 и 3.
python -path = directory | python -path = directory: directory Список разделенных двоеточиями каталогов для добавления к пути поиска модуля Python, ie., sys.path
. Обратите внимание, что это не совсем то же самое, что установка переменной среды PYTHONPATH
при запуске обычной командной строки Python. Когда используется эта опция, каталоги добавляются путем вызова site.addsitedir()
. Помимо добавления каталога в sys.path
, эта функция открывает и интерпретирует любые файлы .pth
, расположенные в указанных каталогах. Если вы используете виртуальную среду Python, вместо того, чтобы использовать эту опцию для ссылки на каталог site-packages
виртуальной среды Python, вы должны использовать опцию python-home
, чтобы указать root виртуального Python. вместо этого окружающая среда. Во всех случаях, если каталог содержит Python пакеты, которые имеют C компонентов расширения, эти пакеты должны быть установлены с использованием той же базовой версии Python, которая использовалась для компиляции модуля mod_wsgi. Не следует смешивать пакеты из разных версий или установок Python.
Среда:
- Apache / 2.4.43
- mod_wsgi / 4.7.1
- Python / 3.6
- Django / 3.0.8
Текущая конфигурация, на которой работает приложение Django
WSGIDaemonProcess ourdomain.com python-home=/home/user/public_html/demo/django/venv python-path=/home/user/public_html/demo/django/
WSGIProcessGroup ourdomain.com
Alias /demo/django/media /home/user/public_html/demo/django/media
<Directory /home/user/public_html/demo/django/media>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
Alias /demo/django/static /home/user/public_html/demo/django/static
<Directory /home/user/public_html/demo/django/static>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>
<Directory /home/user/public_html/demo/django/testproject>
<Files wsgi.py>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Files>
</Directory>
WSGIScriptAlias /demo/django /home/user/public_html/demo/django/testproject/wsgi.py
<Directory /home/user/public_html/demo/django>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
</Directory>