У меня проблемы с запуском моего приложения 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, исправление для этого состоит в том, чтобы заставить config указывать на среду.
На данный момент я уверен, что указываю домашнюю настройку 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>