Ошибка 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.
- myproject - django project
- 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 и брандмауэр были отключены.