Здравствуйте!
Помогите пожалуйста разобраться с проблемой. Имеется тестовый проект на Django, написанный по какому-то мануалу. В тестовом режиме все запускается и работает.
***@ServerUbuntu:/var/www/mysite$ python3 manage.py runserver 10.8.0.1:8000
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
July 29, 2020 - 08:47:42
Django version 2.2.14, using settings 'mysite.settings'
Starting development server at 10.8.0.1:8000
Quit the server with CONTROL-C.
А вот на Apache отказывается работать. Из логов видно, что Apache запускает проект, используя Python 2.7, а для нормальной работы нужен 3-й или выше. Пробовал использовать виртуальное окружение, но настроить не получилось. Как заставить Apache использовать 3-ю версию Python для Django?
Лог ошибок:
***@ServerUbuntu:/var/log/apache2$ cat test3.log
[Wed Jul 29 08:40:23.292988 2020] [wsgi:error] [pid 8219] [client 10.8.0.4:64417] mod_wsgi (pid=8219): Target WSGI script '/var/www/mysite/mysite/wsgi.py' cannot be loaded as Python module.
[Wed Jul 29 08:40:23.293123 2020] [wsgi:error] [pid 8219] [client 10.8.0.4:64417] mod_wsgi (pid=8219): Exception occurred processing WSGI script '/var/www/mysite/mysite/wsgi.py'.
[Wed Jul 29 08:40:23.293196 2020] [wsgi:error] [pid 8219] [client 10.8.0.4:64417] Traceback (most recent call last):
[Wed Jul 29 08:40:23.293264 2020] [wsgi:error] [pid 8219] [client 10.8.0.4:64417] File "/var/www/mysite/mysite/wsgi.py", line 4, in
[Wed Jul 29 08:40:23.293453 2020] [wsgi:error] [pid 8219] [client 10.8.0.4:64417] from django.core.wsgi import get_wsgi_application
[Wed Jul 29 08:40:23.293616 2020] [wsgi:error] [pid 8219] [client 10.8.0.4:64417] ImportError: No module named django.core.wsgi
/var/www/mysite/mysite/wsgi.py
***@ServerUbuntu:/var/log/apache2$ cat /var/www/mysite/mysite/wsgi.py
#!/usr/bin/env python3
import os, sys
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
application = get_wsgi_application()
/etc/apache2/sites-available/000-default.conf
***@ServerUbuntu:/etc/apache2/sites-available$ cat 000-default.conf
<аVirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin admin.mysite.com
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
Alias /mysite /var/www/mysite
ErrorLog ${APACHE_LOG_DIR}/test3.log
<а/VirtualHost>
<аDirectory /var/www/mysite>
Order allow,deny
<а/Directory>
Если в настройках Apache явно указать путь до Python, то результат следующий:
WSGIPythonHome /usr/local/lib/python3.5/dist-packages