Я пытаюсь запустить приложение django с Apache2, wsgi_mod, средой Anaconda с Python3 .8 в Ubuntu.
Когда я запускаю 'sudo service apache2 start', страница продолжает и то же сообщение об ошибке стекаются в /var/log/apache2/error.log'.
Current thread 0x00007ff7b9507bc0 (most recent call first):
[Thu Apr 02 20:02:27.236780 2020] [core:notice] [pid 24024:tid 140701942709184] AH00051: child pid 29871 exit signal Aborted (6), possible coredump in /etc/apache2
[Thu Apr 02 20:02:27.237711 2020] [core:notice] [pid 24024:tid 140701942709184] AH00051: child pid 29872 exit signal Aborted (6), possible coredump in /etc/apache2
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'
Это sys.prefix и sys.path
(my_env) manager@ubserv01:/etc/apache2/sites-available$ python -c "import sys; print(sys.prefix)"
/var/anaconda3/envs/my_env
(my_env) manager@ubserv01:/etc/apache2/sites-available$ python -c "import sys; print(sys.path)"
['', '/var/anaconda3/envs/my_env/lib/python38.zip', '/var/anaconda3/envs/my_env/lib/python3.8', '/var/anaconda3/envs/my_env/lib/python3.8/lib-dynload', '/var/anaconda3/envs/my_env/lib/python3.8/site-packages']
Это вывод mod_wsgi- express module-config:
(my_env) manager@ubserv01:/etc/apache2/sites-available$ mod_wsgi-express module-config
LoadModule wsgi_module "/var/anaconda3/envs/my_env/lib/python3.8/site-packages/mod_wsgi/server/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so"
WSGIPythonHome "/var/anaconda3/envs/my_env"
Вот мой /etc/apache2/sites-available/djangoProject.conf:
LoadModule wsgi_module /var/anaconda3/envs/my_env/lib/python3.8/site-packages/mod_wsgi/server/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so
WSGIPythonHome /var/anaconda3/envs/my_env
<VirtualHost *:80>
ServerName opes.com
ServerAdmin admin
LogLevel warn
DocumentRoot /var/www/opes/djangoProject
<Directory /var/www/opes/djangoProject/djangoProject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIPassAuthorization On
WSGIDaemonProcess djangoProject python-path=/var/www/opes/djangoProject python-home=/var/anaconda3/envs/my_env
WSGIProcessGroup djangoProject
WSGIScriptAlias / /var/www/opes/djangoProject/djangoProject/wsgi.py
ErrorLog "/var/log/apache2/djangoProject"
CustomLog "/var/log/apache2/djangoProject" common
</VirtualHost>
/ var / www/opes/djangoProject - это каталог, где находится manage.py. Я включаю этот файл с помощью: sudo a2ensite
И wsgi.py:
import os, sys
from django.core.wsgi import get_wsgi_application
sys.path.append("/var/www/opes/djangoProject")
sys.path.append("/var/www/opes/djangoProject/djangoProject")
os.environ.setdefault("LANG", "en_US.UTF-8")
os.environ.setdefault("LC_ALL", "en_US.UTF-8")
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoProject.settings')
application = get_wsgi_application()
Я установил mod_wsgi с помощью: sudo apt-get install libapache2-mod-wsgi-py3 и включаю его whit: sudo a2enmod wsgi.
Я не знаю, как это на самом деле работает, похоже, это проблема с виртуальной средой, но я в замешательстве. Спасибо!