Пытаюсь уже на протяжении 5-6 часов создать проект django версии 3.1.7 на хостинге TimeWeb. Делаю по справочным материалам.
Создал новый сайт 'test', запустил SSH-консоль, создал виртуальное окружение python версии 3.6, а затем установил django версии 3.1.7 все это в папке 'test/public_html/' вроде все окей. Затем создал проект 'testsite'.
После настроил файл .htaccess:
Options +ExecCGI AddHandler wsgi-script .py RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /testsite/testsite/wsgi.py/$1 [QSA,PT,L]
Тут вроде тоже все правильно сделал и начал настройку самого wsgi.py (P.S. имя пользователя в проекте выглядит нормально (не как здесь) :D):
import os import sys sys.path.append('/home/c/{user}/test/public_html/testsite') sys.path.append('/home/c/{user}/test/myenv/lib/python3.6/site-packages') os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings' import django django.setup() from django.core.handlers import wsgi application = wsgi.WSGIHandler()
Ну и в конце добавил доменное имя в раздел ALLOWED_HOST. И по сути должно все заработать и на главной странице появится летящая ракета, но высвечивается ошибка 500 (внутренняя ошибка сервера)
Что делать не знаю. Уже вариантов как его реализовать на хостинге не осталось. Надеюсь, кто-то поможет :)
Ответы (2)
Точные пути к папкам лучше смотреть в консоле, с использованием команды pwd, т.к. по сути проект и окружение можно куда угодно поставить. Тут главное в рабочей папке сайта (которая public_html) правильно написать .htaccess
Файл wsgi.py
# -*- coding: utf-8 -*-
import os
import sys
import platform
#путь к проекту, там где manage.py
sys.path.insert(0, '/home/{первая буква юзернейма}/{юзернейм}/{путь к рабочей папке сайта}/public_html')
#путь к фреймворку, там где settings.py
sys.path.insert(0, '/home/{первая буква юзернейма}/{юзернейм}/public_html/{папка проекта}')
#путь к виртуальному окружению myenv
sys.path.insert(0, '{путь к папке вирт окружения}/lib/python(тут версия питона)/site-packages')
os.environ["DJANGO_SETTINGS_MODULE"] = "{имя проекта (название папки)}.settings"
import django
django.setup()
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Файл .htaccess
Options +ExecCGI
AddDefaultCharset utf-8
AddHandler wsgi-script .py
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ {путь где лежит файл wsgi}/wsgi.py/$1 [QSA,L]