Перейти к содержимому

Beget docker как зайти

  • автор:

Beget docker как зайти

ssh localhost -p222

Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.9.132-0-beget-acl x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage

Python

python3 -V
pip3 -V

Python 3.7.0
pip 20.1 from /home/u/user/.local/lib/python3.7/site-packages/pip (python 3.7)

Установка новой версии Python

Установка Python

/.local/include/ (docker) login@server:

[0] $ which python3

  • venv
  • virtualenv
  • anaconda

python3 -m venv venv_django
source venv_django/bin/activate

Установка Django

python3 -m pip install —upgrade pip

python3 -m pip install django

python3 -m django —version

python3 -m pip list

Package Version —————— ——— asgiref 3.3.4 Django 3.2.4 pip 21.1.2 pytz 2021.1 setuptools 39.0.1 sqlparse 0.4.1 typing-extensions 3.10.0.0

Структура директорий для Django изображение с сайта www.andreyolegovich.ru

Запуск первого проекта в Django

django-admin startproject Project_Name

__init__.py
settings.py
urls.py
wsgi.py

#!/usr/bin/env python «»»Django’s command-line utility for administrative tasks.»»» import os import sys def main (): «»»Run administrative tasks.»»» os.environ.setdefault(‘DJANGO_SETTINGS_MODULE’, ‘Project_Name.settings’) try : from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( «Couldn’t import Django. Are you sure it’s installed and » «available on your PYTHONPATH environment variable? Did you » «forget to activate a virtual environment?» ) from exc execute_from_command_line(sys.argv) if __name__ == ‘__main__’: main()

passenger_wsgi.py

cd /home/u/user/site.ru
touch passenger_wsgi.py

python3 -c «import django; print(django.get_version()); print(django.__file__)»

# -*- coding: utf-8 -*- import os import sys from django.core.wsgi import get_wsgi_application sys.path.insert( 0 , ‘/home/u/user/site.ru/public_html/Project_Name’ ) sys.path.insert( 1 , ‘/home/u/user/site.ru/venv_django/lib/python3.7/site-packages’ ) os.environ[ ‘DJANGO_SETTINGS_MODULE’ ] = ‘Project_Name.settings’ application = get_wsgi_application()

applications + configurations = web application

python3 manage.py startapp first_app

settings.py

INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘first_app’, ]

/site.ru [0] $ touch tmp/restart.txt

python3 manage.py runserver

Performing system checks.

System check identified no issues (0 silenced).
February 06, 2019 — 20:54:38
Django version 2.1.5, using settings ‘Project_Name.settings’
Starting development server at http://127.0.0.1:8000/

Начинаем развертывание Django-сайта на хостинге


Администратор и владелец сайта не несут ответственности за содержание и достоверность информации, размещенной в текстах сообщений и мнениях посетителей сайта.
Все сообщения и информация, размещенные посетителями сайта, являются выражением субъективного мнения, личной оценки лица, разместившего сообщение.
Мнение авторов комментариев может не совпадать с мнением администрации сайта.

Установка Django на виртуальном хостинге

На хостинге нужно создать сайт и прикрепить к нему домен. Если у вас нет хостинга или домена — рекомендую Beget сам им пользуюсь больше десяти лет.

Не забудьте разрешить подключение по FTP и SSH

Docker

Сначала необходимо подключиться к серверу по SSH ( инструкция от Beget )

Для этого понадобится имя пользователя на хостинге — это может быть как администратор, так и специально созданный ftp аккаунт.

Вместо username введите имя аккаунта у которого есть доступ к хостингу

Вместо website_url.com — ваш домен либо IP адрес

После того, как вы зашли на хостинг — нужно активировать виртуальное окружение

Для перехода в виртуальное окружение Docker нужно выполнить следующую команду:

ssh localhost -p222

После чего возможно придётся ещё раз ввести пароль для доступа к аккаунту.

Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.9.132-0-beget-acl x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage

Python

Проверить, установлены ли python3 и pip можно командами

python3 -V
pip3 -V

Python 3.7.0
pip 20.1 from /home/u/user/.local/lib/python3.7/site-packages/pip (python 3.7)

Проверить где находится python3 можно командой

Установка новой версии Python

Если Python не установлен или вам нужна более свежая версия — можно выполнить установку вручную

Установка Python

Подробнее про установку программ в Linux с помощью configure_make_make-install читайте здесь

/.local/include/ (docker) login@server:

Затем нужно в .bashrc данного аккаунта прописать $PATH до директории

/.local/bin/ или алиас для python3,

Проверим путь до python3

[0] $ which python3

Этот путь нам и нужно прописать в PATH. Отбросим только /python3

И перезапустить .bashrc

Виртуальное окружение

Часто полезно пользоваться виртуальным окружением. Создавать их можно разными способами, например с помощью:

  • venv
  • virtualenv
  • anaconda

python3 -m venv venv_django
source venv_django/bin/activate

Обычно при активации виртуального окружения в терминале перед именем пользователя появляется называние окружения в круглых скобках.

Внутри контейнера вы скорее всего уже видите (docker) а название окружения может и не появиться.

Чтобы проверить перешли вы в окружение или нет выполнитеi

Как вы можете проверить здесь — до входа в окружение использовался другой Python

Либо перейдите в интерактивный режим

Выполните две команды

Они должны показать разный результат

Установка Django

Первым делом советую обновить pip

python3 -m pip install —upgrade pip

Затем непосредственно установить Django

python3 -m pip install django

python3 -m django —version

python3 -m pip list

Package Version —————— ——— asgiref 3.3.4 Django 3.2.4 pip 21.1.2 pytz 2021.1 setuptools 39.0.1 sqlparse 0.4.1 typing-extensions 3.10.0.0

Структура директорий для Django изображение с сайта www.andreyolegovich.ru

Запуск первого проекта в Django

Переходим в директорию в которой нужно создать проект. Например в public_html.

django-admin startproject Project_Name

После удачного выполнения этой команды создаётся директория Project_Name

NB: Если вы пишите код в PyCharm эту директорию нужно кликнуть правой кнопкой мыши и выбрать Mark Directory as → Sources Root

Внутри Project_Name будет находится файл manage.py и ещё одна директория с таким же именем — Project_Name.

Внутри вложенной директории Project_Name находятся файлы

__init__.py
settings.py
urls.py
wsgi.py

WSGI расшифровывается как Web Server Gateway Interface.

Это стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером, например Apache

Пример файла manage.py

#!/usr/bin/env python «»»Django's command-line utility for administrative tasks.»»» import os import sys def main (): «»»Run administrative tasks.»»» os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Project_Name.settings') try : from django.core.management import execute_from_command_line except ImportError as exc: raise ImportError( «Couldn't import Django. Are you sure it's installed and » «available on your PYTHONPATH environment variable? Did you » «forget to activate a virtual environment?» ) from exc execute_from_command_line(sys.argv) if __name__ == '__main__': main()

passenger_wsgi.py

Нужно создать в корне сайта файл passenger_wsgi.py

cd /home/u/user/site.ru
touch passenger_wsgi.py

Для настройки passenger_wsgi.py понадобятся путь до Django и путь до проекта.

Путь до Django можно получить выполнив

python3 -c «import django; print(django.get_version()); print(django.__file__)»

Из этого пути нужно оставить

Посмотреть путь до проекта можно перейдя в родительскую директорию Project_Name (директорий Project_Name две нужна более высокого уровня) и выполнив pwd

Пример файла passenger_wsgi.py

# -*- coding: utf-8 -*- import os import sys from django.core.wsgi import get_wsgi_application sys.path.insert( 0 , '/home/u/user/site.ru/public_html/Project_Name' ) sys.path.insert( 1 , '/home/u/user/site.ru/venv_django/lib/python3.7/site-packages' ) os.environ[ 'DJANGO_SETTINGS_MODULE' ] = 'Project_Name.settings' application = get_wsgi_application()

Запуск приложения

В каждом проекте (project) обычно используется одно или несколько приложений (application)

Когда все приложения и конфигурации объединены они составляют веб-приложение.

applications + configurations = web application

Создаём первое приложение

python3 manage.py startapp first_app

Появится директория first_app в которой будут следующие файлы

settings.py

Переходим в директорию Project_Name/Project_Name

Редактируем файл settings.py

Добавляем домен, на котором Вы разворачиваете сайт в ALLOWED_HOSTS файла (из проекта) settings.py

Нужно добавить в список установленных приложений наше новое приложение first_app

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'first_app', ]

Запускаем/Перезапускаем сервер. О том как это сделать — читайте в следующей главе.

Запуск/Перезапуск сервера

Если перезапуск осуществляется с помощью скрипта выполняем (насколько я знаю, это актуально для хостингов Beget и dreamhost)

/site.ru [0] $ touch tmp/restart.txt

Возможно, на вашем хостинге запуск будет осуществляться с помощью runserver

Из той же директории в которой находится скрипт manage.py вводим команду

python3 manage.py runserver

Performing system checks.

System check identified no issues (0 silenced).
February 06, 2019 — 20:54:38
Django version 2.1.5, using settings 'Project_Name.settings'
Starting development server at http://127.0.0.1:8000/

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Установка и настрока Django проекта на хостинге Beget

Мой сайт работает на хостинге Beget и написан с ипользованием Python и фреймворка Django. Бегет хорошо подходит для размещения небольших проектов как этот. В этой статье раскажу как хостить Django-проект на Бегете.

Для начала создадим сайт в панели администратора

  1. Создадим домен и прекрепим для него новую папку с каким-нибудь именем
  2. В разделе CMS, главного меню хостинга, выберем Django и установим каркас приложения

После установки фреймворка в конреновой директории можно найти файл README.txt следующего содержания

Django установленный системой автоматической установки cms LTD BEGET
Действия описанные ниже необходимо выполнять в docker-окружении выполнив команду ниже ssh localhost -p222
для установки дополнительных модулей используйте pip
сам Django располагается в папке
/home/u/username/site-directory/public_html/venv/ для начала надо переключиться на текущий virtualenv
заходим в папку с проектом
cd /home/u/username/site-directory/public_html
source venv/bin/activate

проверяем правильно ли определился путь до pip:
which pip
/home/u/username/site-directory/public_html/venv/bin/pip

теперь мы можем пользоваться pip’ом для установки модулей не указывая полного пути до исполняемого файла:
pip install
где имя модуля который мы хотим установить
Для перезапуска passenger в папке проекта достаточно выполнить команду touch на пустом файле restart.txt
pwd
/home/u/username/site-directory/public_html/HelloDjango/HelloDjango/tmp
touch restart.txt

Создание репозитория

Создайте репозиторий на любом из сервесов: Github, Bitbucket или Gitlab. Не рекомендуется хранить данные для подключения к базе данных в репозитории. Но если вы решили так сделать, не забудьте создать приватный репозиторий.
В личного кабинета в сайдбаре нужно включить SSH-доступ.

Подключимся к хостингу по ssh:

Пароль для доступа такой же как и от личного кабинета

Зайдем в docker-контейнер:

ssh localhost -p 222

Пароль для доступа такой же как и от личного кабинета

Инициализируем репозиторий в директории /public_html:

git commit -m «Initial commit»

Добавим ссылку на внешний репозиторий:

git add remotename url

Проверим, что репозиторий добавлен:

origin https://github.com/username/repository (fetch)

origin https://github.com/username/repository (push)

Привяжем ветку master к внешней ветке и отправим файлы в репозиторий:

git branch —set-upstream-to=origin/master

Теперь можно разрабатывать сайт на локальной машине. Когда нужно будет перенести сайт на сервер нужно выполнить одну команду и поправить конфигурационные файлы, если потребуется

Начинаем развертывание Django-сайта на хостинге

Посмотрите как клиент отказался от Seo и потом все же вернулся к нам в seouspeh.ru — наглядный сред более 5 лет

А вот и через пару месяцев еще)), класс:

Посмотрите как мы в 10 раз уменьшили нагрузку на базу данных MySQL (перегруз был на 500% от лимитов)

Администратор и владелец сайта не несут ответственности за содержание и достоверность информации, размещенной в текстах сообщений и мнениях посетителей сайта.
Все сообщения и информация, размещенные посетителями сайта, являются выражением субъективного мнения, личной оценки лица, разместившего сообщение.
Мнение авторов комментариев может не совпадать с мнением администрации сайта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *