В этой статье будет описание того, как разместить готовый веб-ресурс на хостинге. Пример выполненной работы можно посмотреть по адресу: https://roboclub.space/
1. Размещать Django-проект будем с использованием платформы timeweb. Для этого переходим по ссылочке: https://timeweb.com/ru/
2. Нужно перейти в раздел хостинг - виртуальный хостинг по ссылке https://timeweb.com/ru/services/hosting/
3. Выполнив второй пункт вы попадете на страницу с выбором тарифного плана. Для начала можно выбрать, либо первый либо второй вариант. Лучше, конечно, второй вариант!
После этого Вас попросят зарегистрироваться, нужно сделать это. При регистрации следует указывать Вашу настоящую почту! На нее придет логин и пароль доступа к хостингу.
3. После этого Вы попадете в панель управления веб-сайтом.
4. Перейдите в "Сайты" и перейдите по ссылке домена третьего уровня.
Если возникнет ошибка с безопасностью попробуйте использовать другой браузер. Такая проблема возникает с Google Chrome.
5. Для загрузки готового Django-проекта мы должны подключить доступ по SSH.
Потребуется подтверждение через мобильный телефон.
6. Для подключения к веб-серверу нужно воспользоваться программой puTTy. Скачать можно тут: https://putty.org.ru/download.html
В поле Host Name указываем IP сайта;
Порт оставляем как есть - 22;
Тип соединения указываем SSH;
Жмем "Open".
7. В открывшемся cmd указываем логин. Логин тут: https://hosting.timeweb.ru/
8. Вводите пароль
После ввода и нажатия Enter отобразится надпись TimeWeb
В Linux можно по SSH подключиться через терминал. Для этого выполните команду:
$ ssh имя_пользователя@айпи_адрес -p порт
9. Переходим в пункт "Сайты" и кликаем создать новый сайт
10. Чтобы получить бесплатное имя можем выбрать Django в пункте контекстного меню "Катало CMS" на вкладке "Прочее".
После этого Вы можете перейти на пункт "Сайты" , отвязать домен от django сайта и привязать его к своему вновь созданному сайту
11. Переходим в файловый менеджер и смотрим, что у нас есть внутри.
12. Переходим в PuTTY и вызываем команду просмотра директории ls.
13. C помощью команды cd <имя папки> переходим в нужную директорию.
14. Затем выполняем команды в командной строке PuTTy
wget https://bootstrap.pypa.io/virtualenv/3.6/virtualenv.pyz - установка виртуального окружения.
python3 virtualenv.pyz venv - включение виртуального окружения.
source venv/bin/activate - активируем виртуальное окружение
pip install django==3.0.2 - устанавливаем Django(обратите внимание на версию!)
Подробнее по командам смотреть здесь - https://timeweb.com/ru/help/pages/viewpage.action?pageId=10289298
15. Создадим проект. Для этого перейдем в директорию public_html c помощью команд ls и cd
django-admin.py startproject <название вашего проекта> - создание проекта-Django
16. Создаем файл
nano .htaccess
В открывшемся окне пишем
Options +ExecCGI
AddHandler wsgi-script .py
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ <название вашего приложения>/<название вашего приложения>/wsgi.py/$1 [QSA,PT,L]
Затем жмем: CTRL+X, после этого Y
17. После этого переходим в файловый менеджер, обновляем его и смотрим все ли появилось, что мы создали.
18. Открываем файлик settings.py и в пункте ALLOWED_HOSTS указываем разрешение на все хосты.
19. В файле wsgi.py нужно все удалить и написать следующее:
Это можно взять в файлике wsgi.py Django-сайта, у которого мы брали доменное имя. Также нужно изменить пути.
20. После этого можно проверять работоспособность вашего сайта.
21. Далее остается перенести готовые html, css и т.п. на хостинг. Делать это будем с помощью Total-commander. Скачать можно тут https://dw.uptodown.com/dwn/UDNW-SnA1-bdF8ohY3eAwQ4o1W79uYu-a4Dq6-WQYfMOjwq8WYadxPD_Oq9TNYMPMGbNrMPH8se5G1TCCXYv4Odzyd1dD2cxhpanOzFt3aVOP_DKCu8dNev8UVcYga9v/8Ks-PnuFch9-a3-9UmF96LTDBTGECbEQYQrFihTZOAhQHq4v-gnvjolw25Ds3w-QkdWLKrpN76b593nLX-MEbhIhvvGj2a5SjZCD2a7B-rY7Szt273ZYalvd1-R19aGF/5zvFpzx0c6SmyOLhGTaYAaxh_TqRQpEXJUuDsEiJpD282j6wA6kcSNM8lU1-IdWSsdHyAKbbeAtgSlKao91Gdw==/
Если вы работаете на ОС Linux, то Вам нужно установить программу Double Commander. Это аналог Total-commander.
22. Откройте программу Total-commander и нажмите CTRL+F
Введите имя соединения - IP сайта;
Порт(Хост) - vh392.timeweb.ru;
Логин и пароль - письмо с данными приходит Вам на почту.
Если Вы все правильно сделали, то слева появиться директория с Вашим сайтом.
23. После успешного подключения переносите файлы с локального диска на хостинг. Обязательно соблюдайте правильное расположение файлов в директориях.
24. После переноса данных в файле settings.py нужно указать путь до папки с названием static
STATIC_ROOT = 'static'
25. Перейти в директорию, где находится файл .htacsess и создать там папку static командой mkdir static
26. Перейти в директорию, где находится файл manage.py и выполнить команду:
python3 manage.py collectstatic
Обращать внимание на то, откуда (с какой директории) выполняете команду!
python3 <имя проекта>/manage.py collectstatic - может быть и так.
27. После этого проверьте заполнилась ли директория static статическими файлами. Если в этой директории появились файлы значит они отобразятся и в браузере.
28. Остается подключить БД.
При подключении БД, если это не sqlite3, то надо установить через pip движок. Для PostgreSQL - pip3 install psycopg2 (не работает без костылей с python версий выше 3.7)
Для MySQL - pip3 install mysql
В settings.py надо прописать
Name - название базы данных;
USER - пользователь базы данных;
PASSWORD - пароль от базы данных;
HOST и PORT - localhost и порт 3306
29. Для этого в settings.py нужно указать данные к БД, после создать миграции
python3 manage.py makemigrate
И выполнить их
python3 manage.py migrate
Если возникнет ошибка при выполнении миграций, попробуйте пере подключиться к серверу(перезапустить PuTTY). Совет ветерана тех.поддержки.
Спасибо, что дочитали до конца. Вы меня очень поддержите, если поставите "Лайк", оставите комментарий или ПОДПИШИТЕСЬ на мой канал :)
django
#python
#программирование
#timeweb
#хостинг