Ошибка Django при размещении его на хостинге с использованием веб-сервера Apache

Я использую нижеприведенную версию пакетов, и цель состоит в том, чтобы настроить apache для размещения приложения django. Я использую python в виртуальной среде.

OS Version: Centos 7.9
**Apache Version**
[root@localhost ~]# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built:   Oct 19 2021 13:53:40

Python Version: 3.7.12
**Python Packages and Version:**
(myprojectenv) [rafiq@localhost ~]$ pip3.7 list
Package           Version
----------------- --------
asgiref           3.4.1
Django            3.2.9
pip               21.3.1
pytz              2021.3
setuptools        58.3.0
sqlparse          0.4.2
typing-extensions 3.10.0.2
wheel             0.37.0

Я установил sqlite3 из исходников, ниже приведены данные о версии sqlite3 и пути к sqlite3. Я могу импортировать sqlite3 в python3.7.12

(myprojectenv) [rafiq@localhost ~]$ sqlite3 --version
3.36.0 2021-06-18 18:36:39 5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafa66e5
(myprojectenv) [rafiq@localhost ~]$ whereis sqlite3
sqlite3: /usr/bin/sqlite3 /usr/local/bin/sqlite3 /usr/include/sqlite3.h /usr/share/man/man1/sqlite3.1.gz

Я новичок в python и apache. Я следовал сайту Digital Ocean для настройки django apache, url указан ниже. https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-centos-7

У меня есть две папки внутри /home/rafiq.

  1. myproject - django project
  2. myprojectenv - python virtualenv

Настройки моей конфигурации apache перечислены ниже.

[rafiq@localhost ~]$ cat /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

Я могу запустить django, используя ./manage.py runserver 192.168.0.107:8000 и я могу получить к нему доступ.

Но проблема в том, что когда я пытаюсь получить доступ к нему с помощью apache.

Когда я пытаюсь получить доступ к приложению с помощью apache, я получаю 500 внутреннюю ошибку сервера. Ниже приведена ошибка, которую я получил в журнале ошибок apache.

[root@localhost ~]# tail -f /var/log/httpd/error_log
[Mon Nov 08 01:20:15.885504 2021] [:error] [pid 1444] [remote 192.168.0.105:152]   File "/home/rafiq/myprojectenv/lib/python3.7/site-packages/django/__init__.py", line 1, in <module>
[Mon Nov 08 01:20:15.885554 2021] [:error] [pid 1444] [remote 192.168.0.105:152]     from django.utils.version import get_version
[Mon Nov 08 01:20:15.885571 2021] [:error] [pid 1444] [remote 192.168.0.105:152]   File "/home/rafiq/myprojectenv/lib/python3.7/site-packages/django/utils/version.py", line 7, in <module>
[Mon Nov 08 01:20:15.885598 2021] [:error] [pid 1444] [remote 192.168.0.105:152]     from django.utils.regex_helper import _lazy_re_compile
[Mon Nov 08 01:20:15.885608 2021] [:error] [pid 1444] [remote 192.168.0.105:152]   File "/home/rafiq/myprojectenv/lib/python3.7/site-packages/django/utils/regex_helper.py", line 10, in <module>
[Mon Nov 08 01:20:15.885622 2021] [:error] [pid 1444] [remote 192.168.0.105:152]     from django.utils.functional import SimpleLazyObject
[Mon Nov 08 01:20:15.885629 2021] [:error] [pid 1444] [remote 192.168.0.105:152]   File "/home/rafiq/myprojectenv/lib/python3.7/site-packages/django/utils/functional.py", line 362, in <module>
[Mon Nov 08 01:20:15.885643 2021] [:error] [pid 1444] [remote 192.168.0.105:152]     class SimpleLazyObject(LazyObject):
[Mon Nov 08 01:20:15.885658 2021] [:error] [pid 1444] [remote 192.168.0.105:152] TypeError: Error when calling the metaclass bases
[Mon Nov 08 01:20:15.885661 2021] [:error] [pid 1444] [remote 192.168.0.105:152]     'property' object is not callable

Я не уверен, как исправить эту ошибку, может кто-нибудь помочь в этом.

Примечание: Selinux и брандмауэр были отключены.

Вернуться на верх