207

Как создать сайт Django версии 3x на виртуальном хостинге TimeWeb

2 ответа

Пытаюсь уже на протяжении 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)

AstroFelix 0
18.04.2021 21:36
Аналогичная проблема, по логам Apache не может обработать wsgi. Есть предположение, что расхождение версий python или нужно другое виртуальное окружение, но пока без результатов :C Если Вы справились с этой проблемой, то хотелось бы услышать путь к решению.
AstroFelix 0
18.04.2021 22:57
Каким-то чудом заработало с этим кодом.
Точные пути к папкам лучше смотреть в консоле, с использованием команды 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]

Похожие вопросы

Иван Розин
120

Оплата домена, прекращение хостинга

Здравствуйте, как отключить услуги хостинга таймвеб, перенести его на тильду, но при этом платить за домен в таймвебе? 
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.