#django #apache #mod-wsgi
#django #apache #mod-wsgi
Вопрос:
У меня возникли проблемы с запуском моего приложения django с mod_wsgi.
Вот сообщение в журнале
[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Python home /var/www/myproject/myenv.
[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Initializing Python.
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'
После проверки других проблем в SO и на странице github mod_wsgi на github исправление заключается в том, чтобы указать конфигурацию на среду.
На данный момент я уверен, что указываю домашнюю настройку python на правильный путь среды
Я также выполнил sys.prefix
, и это указывает на /var/www/myproject/myenv
Я также уверен, что использовал правильную версию python для сборки mod_wsgi и создания virtualenv для моего проекта.
Я также смог запустить pip install -r requirements.txt
.
Вот мой конфигурационный файл
LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
WSGIRestrictEmbedded On
WSGIPythonHome /var/www/myproject/myenv
WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py process-group=sgcdjango.com
WSGIDaemonProcess sgcdjango.com python-home=/var/www/myproject/myenv
WSGIProcessGroup myapp.com
WSGIApplicationGroup %{GLOBAL}
<Directory /var/www/myproject/myapp/>
<Files wsgi.py>
Allow from all
Require all granted
</Files>
</Directory>
Alias /static/ /var/www/myproject/static/
<Directory /var/www/myproject/static>
Require all granted
</Directory>
Комментарии:
1. Пожалуйста, проверьте версии python, используемые для настройки mod_wsgi, и версию, которую ваш проект использует в virtualenv. Я получил эту ошибку, когда в них было несоответствие. Исправление, которое решило проблему для меня.