Apache Django Error - Loading Module From lib64 But Expected To Load From Different Directory
Я настроил apache, виртуальную среду python и Django. Я пытаюсь разместить Django в apache. Я проверил, что Django работает нормально, выполнив команду "./manage.py runserver 192.168.0.107". Но это не работает в Apache, в apache, если я загружаю страницу, я получаю 500 Internal Server errors.
В журнале HTTP Apache я получил следующее сообщение об ошибке.
[Mon Nov 08 18:21:51.248632 2021] [wsgi:error] [pid 1812] [remote 192.168.0.105:50224] django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17)
В Python я проверил версию SQLite, и она говорит 3.36.0, а не 3.7.17, смотрите подробности ниже.
Python 3.7.12 (default, Nov 8 2021, 09:02:58)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
from sqlite3 import dbapi2 as Database>>>
>>>
from sqlite3 import dbapi2 as Database
>>> Database.sqlite_version_info
(3, 36, 0)
Я попытался найти версию, которую на самом деле использует apache, я использовал команду grep и обнаружил, что он использует SQLite 3.7.17 из lib64
[root@localhost ~]# grep -rnw /usr -e '3.7.17'
/usr/lib64/pkgconfig/sqlite3.pc:10:Version: 3.7.17
/usr/include/sqlite3.h:110:#define SQLITE_VERSION "3.7.17"
ТРЕБОВАНИЕ Мне нужно очистить или удалить пакет 3.7.17 и сказать Apache или WSGI использовать 3.36.0
Ниже приведена конфигурация моего apache, эта конфигурация находится в файле "/etc/httpd/conf.d/django.conf"
Alias /static /home/rafiq/myproject/static
<Directory /home/rafiq/myproject/static>
Require all granted
</Directory>
<Directory /home/rafiq/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-path=/home/rafiq/myprojectenv:/home/rafiq/myprojectenv/lib/python3.7/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/rafiq/myproject/myproject/wsgi.py
Детали конфигурацииWSGI в Python Django.
[root@localhost ~]# vi /home/rafiq/myproject/myproject/wsgi.py
"""
WSGI config for myproject project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
"""
import os
import sys
sys.path.append('/home/rafiq/myproject')
sys.path.append('/home/rafiq/myproject/myproject')
sys.path.append('/home/rafiq/myprojectenv/lib/python3.7/site-packages')
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_wsgi_application()
Ниже приведены данные sys.path из журналов apache.
['/home/rafiq/myprojectenv', '/home/rafiq/myprojectenv/lib/python3.7/site-packages', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages', '/home/rafiq/myproject', '/home/rafiq/myproject/myproject', '/home/rafiq/myprojectenv/lib/python3.7/site-packages', '/home/rafiq/myproject', '/home/rafiq/myproject/myproject', '/home/rafiq/myprojectenv/lib/python3.7/site-packages', '/home/rafiq/myproject', '/home/rafiq/myproject/myproject', '/home/rafiq/myprojectenv/lib/python3.7/site-packages', '/home/rafiq/myproject', '/home/rafiq/myproject/myproject', '/home/rafiq/myprojectenv/lib/python3.7/site-packages', '/home/rafiq/myproject', '/home/rafiq/myproject/myproject', '/home/rafiq/myprojectenv/lib/python3.7/site-packages', '/home/rafiq/myproject', '/home/rafiq/myproject/myproject', '/home/rafiq/myprojectenv/lib/python3.7/site-packages']
Ниже приведены подробности sys.path непосредственно из python3.7
[rafiq@localhost ~]$ source myprojectenv/bin/activate
(myprojectenv) [rafiq@localhost ~]$ python3.7
Python 3.7.12 (default, Nov 8 2021, 09:02:58)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/home/rafiq/myprojectenv/lib/python3.7/site-packages']
Может кто-нибудь помочь исправить эту проблему, не уверен как сказать apache использовать SQLite 3.36.0
Спасибо