Установка и настрока Django проекта на хостинге Beget
Мой сайт работает на хостинге Beget и написан с ипользованием Python и фреймворка Django. Бегет хорошо подходит для размещения небольших проектов как этот. В этой статье раскажу как хостить Django-проект на Бегете.
Для начала создадим сайт в панели администратора
- Создадим домен и прекрепим для него новую папку с каким-нибудь именем
- В разделе 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
Теперь можно разрабатывать сайт на локальной машине. Когда нужно будет перенести сайт на сервер нужно выполнить одну команду и поправить конфигурационные файлы, если потребуется
Дополнительные действия
Для раздачи статики нужно сделать относительные ссылки:
В корневой директории
ln -s public_html public
На директорию static в public_html
rm -rf static
ln -s HelloDjango/static static
поднять django на хосте beget
не могу поднять сайт django1.11 python3.5.2 на сайте выдаёт такую ошибку Raw process output:
Traceback (most recent call last): File "/opt/passenger40/helper-scripts/wsgi-loader.py", line 320, in app_module = load_app() File "/opt/passenger40/helper-scripts/wsgi-loader.py", line 61, in load_app return imp.load_source('passenger_wsgi', startup_file) File "/home/s/snoy123/.local/lib/python3.5/imp.py", line 172, in load_source module = _load(spec) File "", line 693, in _load File "", line 673, in _load_unlocked File "", line 665, in exec_module File "", line 222, in _call_with_frames_removed File "passenger_wsgi.py", line 6, in application = get_wsgi_application() File "/home/s/snoy123/.local/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application django.setup(set_prefix=False) File "/home/s/snoy123/.local/lib/python3.5/site-packages/django/__init__.py", line 22, in setup configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) File "/home/s/snoy123/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 56, in __getattr__ self._setup(name) File "/home/s/snoy123/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 41, in _setup self._wrapped = Settings(settings_module) File "/home/s/snoy123/.local/lib/python3.5/site-packages/django/conf/__init__.py", line 110, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/home/s/snoy123/.local/lib/python3.5/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 986, in _gcd_import File "", line 969, in _find_and_load File "", line 956, in _find_and_load_unlocked ImportError: No module named 'energo.settings'
структура проекта такая.
/eimp.com.ua energo/ energo/ __init__.py settings.py urls.py wsgi.py polls/ models.py admin.py . db.sqlite manage.py punlic_html/ .htaccess tmp/ restart.txt passenger_wsgi.py publik [link]
в файле .htaccess прописано так
PassengerEnabled On PassengerPython /home/s/snoy123/.local/bin/python3.5
в файле passenger_wsgi.py так
import os, sys sys.path.append('/home/s/snoy123/energo.com.ua/energo') sys.path.append('/home/s/snoy123/.local/lib/python3.5/site-packages') os.environ['DJANGO_SETTINGS_MODULE'] = 'energo.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
понимаю что скорее всего проблема в путях, перепробовал кучу вариантов, ничего не помогает.
Как выложить сайт на beget Python Django?
Другу нужно выложить сайт на Python Django.. Выложил, но он не работает.
Может beget его не поддерживает ?
я мог бы написать поддержу, но они оочень долго отвечают, а вы ребята быстрые)
да и вопрос не сложный))
- Вопрос задан более трёх лет назад
- 2740 просмотров
6 комментариев
Простой 6 комментариев

Выложил, но не работает? А что именно не работает? Проблема конфигурации, не запускается, сайт не виден в сети? Если Вы по инструкции https://beget.com/ru/articles/webapp_python — то я бы посоветовал не мучиться, перейти на VPS с полным контролем и развернуть по инструкциям Django.

Dimonchik @dimonchik2013
maxim @m1rvi Автор вопроса
Gennady S, друг програет на пайтоне, хост просто мой) выложи коммент в ответы, отмечу, что верный, а то просто так отвечаешь) Спасибо!
maxim @m1rvi Автор вопроса

m1 rvi, да необязательно, это и не прямой ответ, а совет. Всего доброго!
m1 rvi напишите мне в телеграмм помогу с деплоем @pyhammer
Решения вопроса 1
aimsavagejk @aimsavagejk
Зависит от того, какими услугами beget вы пользуетесь
Если это хостинг, то вот полное руководство для django от beget тык
Если это vps, то для тестов можно запустить через python3 manage.py runserver host:8080
Где host это IP адрес вашего VPS, при этом не забудьте добавить его в ALLOWED_HOSTS
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Django
- +1 ещё
Как отключить все сессии Django?
- 1 подписчик
- 21 минуту назад
- 8 просмотров
Как загрузить django сайт на beget
#!/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
Итак первым делом нужно в паели веб-сервера включить доступ по ssh для вашего аккаунта.
Далее подключаемся к нашему хостингу из терминала
попав на сервер переходим в docker — окружение
Прежде чем идти дальше, предполагается, что у вас уже установлен Python на хостинге. Как устанавливать цитировать руководство не буду, просто оставлю ссылку на него, где все подробно расписано. В моем случае, нужно было установить Python 3, что я и сделал.
На сервере уже по умолчанию установлен git, поэтому переходим в папку Django приложения, обновляем проект командой, разумеется предварительно нужно инициировать репозиторий git
А также копируем статику:
/.local/bin/python3.5 ./manage.py collectstatic
После завершения настройки окружения необходимо создать каталог tmp, где будет хранится файл restart.txt:
Пересоздание tmp/restart.txt применяет новые изменения в проекте.
На этом пожалуй все, Очень качественный и недорогой хостинг, всем советую!
Создать сайт на Django
На хостинге нужно создать сайт и прикрепить к нему домен.
Не забудьте разрешить подключение по FTP и SSH
Docker
Сначала необходимо подключиться к серверу по SSH:
Для этого понадобится имя пользователя на хостинге — это может быть как администратор, так и специально созданный ftp аккаунт.
Вместо username введите имя аккаунта у которо есть доступ к хостингу
Вместо website_url.com — ваш домен либо IP address
После того, как вы зашли на хостинг — нужно активировать виртуальное окружение
Для перехода в виртуальное окружение 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
Подробнее про установку программ в Linux с помощью configure_make_make-install читайте здесь
/.local/include/ (docker) login@server:
Затем нужно в .bashrc данного аккаунта прописать $PATH до директории
/.local/bin/ или алиас для python3,
Проверим путь до python3
[0] $ which python3
Этот путь нам и нужно прописать в PATH. Отбросим только /python3
И перезапустить .bashrc
Виртуальное окружение
Часто полезно пользоваться виртуальным окружением. Создавать их можно разными способами, например с помощью:
python3 -m venv venv_django
source venv_django/bin/activate
Обычно при активации виртуального окружения в терминале перед именем пользователя появляется называние окружения в круглых скобках.
Внутри containerа вы скорее всего уже видите (docker) а название окружения может и не появиться.
To проверить перешли вы в окружение или нет executei
Как вы можете проверить здесь — до входа в окружение использовался другой 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
/HelloDjango [0] $ python3 -m django Type ‘python -m django help ‘ for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.). (docker) aredel.com@server:
/HelloDjango [0] $ ls HelloDjango manage.py (docker) aredel.com@server:
/HelloDjango [0] $ python3 manage.py runserver Performing system checks. System check identified no issues (0 silenced). You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run ‘python manage.py migrate’ to apply them. February 03, 2019 — 18:50:29 Django version 2.1.5, using settings ‘HelloDjango.settings’ Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
python3 manage.py migrate
Запуск первого проекта в Django
Запуск Django
Переходим в директорию в которой нужно создать проект. Например в public_html.
django-admin startproject Project_Name
После удачного выполнения этой команды создаётся директория Project_Name , внутри которой будет находится файл manage.py и ещё одна директория с таким же именем — Project_Name.
Внутри вложенной директории Project_Name находятся файлы
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()
wsgi.py
Для настройки wsgi.py понадобятся путь до Django и путь до проекта.
Путь до Django можно получить выполнив
python3 -c «import django; print(django.get_version()); print(django.__file__)»
Внутри вложенной директории Project_Name находятся файлы
Запуск сервера
Из той же директории в которой находится скрипт 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/
В каждом проекте (project) обычно используется одно или несколько приложений (application)
Когда все приложения и конфигурации объединены они составляют веб-приложение.
applications + configurations = web application
Создаём первое приложение
python3 manage.py startapp first_app
Появится директория first_app в которой будут следующие файлы
Создаём view и связываем с url
Переходим в директорию Project_Name/Project_Name
Редактируем файл Project_Name/Project_Name/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’, ]
python3 manage.py runserver
Если перезапуск осуществляется с помощью скрипта выполняем (насколько я знаю, это актуально для хостингов beget и dreamhost)
Установка Django на сервер
урок из категории django — 196 просмотров

Как быть, если версия Python или Django, предложенная для установки в автоматическом режиме не устраивает? Beget предлагает ручную установку, с возможностью выбора версии питона и последней джанго. На их сайте есть инструкция, но в процессе установки у меня возникали вопросы. Техподдержка всё прояснила и я решил выложить скорректированное описание процесса. Начать стоит с создания папки сайта. Я предлагаю метод для новичков, чтобы была возможность протестировать на техническом поддомене любой сайт, а потом прикрепить постоянный домен. В панели управления хостингом нажимаем «Сайты». Попадаем на страницу «Управление сайтами». Вводим название для папки сайта — повторяю, это не домен или поддомен, это директория и она должна как-то называться. Если создавать сайт через «Добавление доменов и поддоменов», можно выбрать «Создать новый сайт для домена». Папка добавиться автоматически и будет названа именем домена (поддомена). Это удобно, если уже есть домен (поддомен) и смена не планируется. Вернёмся к первому способу. Когда название введено, нажимаем «Создать». Ниже, в таблице «Сайты и прилинкованные домены» появиться новая директория. В правой части находятся кнопки управления: в виде папки — «Перейти к файлам сайта», график — «Статистика», зелёная цепь с плюсиком — «Прикрепить домен», урна — «Удалить сайт». Нажимаем на папку, нам нужно в файлы сайта. По умолчанию создаётся подпапка «public_html» — нужно удалить её со всем содержимым, для Django она совершенно не нужна. Возвращаемся к управлению сайтами. Нажимаем на зелёную цепь с плюсом. В всплывающем окне будет предложено прикрепить свободный домен (технический поддомен будет точно) к сайту. Прикрепляем и, через 10 минут, сайт будет доступен по этому адресу. Вот только залить CMS так быстро получиться, скорее всего, только с опытом.
PuTTY — это клиент SSH и telnet, первоначально разработанный Саймоном Татхамом для платформы Windows. PuTTY — это программное обеспечение с открытым исходным кодом, которое доступно вместе с исходным кодом и разрабатывается и поддерживается группой добровольцев.
Данная программа заменит нам терминал в PyCharm. Она совершенно бесплатна и проста в использовании. Ссылка на сайт: https://www.chiark.greenend.org.uk/
sgtatham/putty/ , версию для Windows 10 64 bit можно скачать в исходниках внизу страницы. Устанавливаем и запускаем программу, файл для запуска — putty.exe — в папке с установленной программой. В панели управления хостингом https://cp.beget.com/main в левой колонке есть «Тех. информация». SSH-доступ: следует включить, Сервер: скопировать и вставить в PuTTY в поле формы с названием «Host Name (or IO address)». Port я не трогал, Connection type: SSH. В поле «Saved Sessions» можно (и нужно) ввести название соединения (для дальнейшей работы) и сохранить, нажав «Save». Теперь остаётся выбрать новое соединение (подсветится синим фоном) и нажать «Open». Появится окошко, похожее на командную строку в Windows. Без промедления вводите логин и пароль от вашего аккаунта на Beget. Длительная задержка может привести к обрыву соединения. В этом случае нужно открыть его снова. В дальнейшем спешить не обязательно, после авторизации соединение стабильно. Вставка скопированных строк в окно программы осуществляется нажатием правой кнопки мыши. Пароль не показывается никак. Далее устанавливаем Python и Django строго копируя команды из инструкции.
Для перехода в виртуальное окружение Docker вводим команду:
ssh localhost -p222
После чего ещё раз ввести пароль для доступа к аккаунту. Внимание: далее в инструкции заменяйте » site_name » на название вашей папки с сайтом (не путать с доменным именем). Лучше всего открыть любой редактор (блокнот) и скопировать все команды в него, заменяя название сайта. Потом копировать команды из блокнота.
Создайте каталог и перейдите:
mkdir -p site_name /.beget/tmp
cd site_name /.beget/tmp/
Скачать исходный код библиотеки ffi:
Распаковать архив и перейти в каталог с исходным кодом:
tar -xf libffi-3.2.1.tar.gz && cd libffi-3.2.1
Настроить зависимости, префиксы, переменные, сгенерировать Makefile:
./configure —prefix $HOME/ site_name /.local LDFLAGS=»-L/usr/local/lib»
Запустить процесс компиляции и установки:
make -j33 && make install
В директории с исходным кодом libffi-3.2.1/x86_64-unknown-linux-gnu/include сгенерируются два файла: ffi.h и ffitarget.h. Их копируем в site_name /.local/include:
mkdir -p site_name /.local/include
cp x86_64-unknown-linux-gnu/include/ffi.h site_name /.local/include/
cp x86_64-unknown-linux-gnu/include/ffitarget.h site_name /.local/include/
Теперь непосредственно установка Python. На момент написания статьи используется версия 3.9.0 (можно заменить на нужную). Нужно вернуться в site_name /.beget/tmp. Если нигде не ошибались, команда:
cd site_name /.beget/tmp
Распаковать архив и перейти в каталог с исходным кодом:
tar -xf Python-3.9.0.tgz && cd Python-3.9.0
И снова зависимости, префиксы, переменные:
./configure —prefix=$HOME/ site_name /.local LDFLAGS=»-L/usr/local/lib»
Компиляция и установка:
make -j33 && make install
Возврат в корневую папку сайта — выполнить следующую команду три раза подряд:
Для установки virtualenv укажите полный путь до pip:
.local/bin/pip3.9 install virtualenv
Скорее всего, увидите предупреждение о необходимости обновить pip, введите (если нет — этот пункт пропустить):
.local/bin/python3.9 -m pip install —upgrade pip
Создать директорию окружения с названием venv:
.local/bin/python3.9 -m virtualenv venv
Для входа в окружение выполнить команду:
Команда автоматически устанавливает последнюю версию Django:
pip install django
И опять обновление pip (если не нужно — пропустить):
venv/bin/python -m pip install —upgrade pip
Далее уже знакомая по работе с Django команда на создание проекта. Название, естественно, прописываете своё:
django-admin.py startproject projectName
Не закрывая программу, в корневой папке сайта создать два файла. Первый .htaccess , в нём указать путь к Python:
PassengerEnabled On
PassengerPython /home/ l / login / site_name /.local/bin/python3.9
Где l — первая буква вашего логина, login сам логин на хостинге, site_name — папка с сайтом. Второй файл passenger_wsgi.py нуждается в тех же подстановках:
# -*- coding: utf-8 -*-
import os, sys
sys.path.insert(0, ‘/home/ l / login / site_name /programmingSchool’)
sys.path.insert(1, ‘/home/ l / login / site_name /venv/lib/python3.9/site-packages’)
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘ projectName .settings’
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
В отличии от локального сервера, необходимо прописать доменное имя в файле settings.py — ALLOWED_HOSTS = [‘ login.beget.tech ‘] и изменим язык на русский — LANGUAGE_CODE = ‘ru’. Сразу подключим возможность работать с mySQL, три команды последовательно:
pip install setuptools
pip install mysqlclient
Сразу создайте в панели управления хостингом — MySQL — базу данных и перепишите настройки в settings.py , по умолчанию стоит sqlite3, это не лучший вариант для сервера. Начнёте с ней работать, забудете и получите много проблем в дальнейшем.
Далее необходимо вытащить статические файлы админки. В файловом менеджере (нажмите в панели управления хостингом) в одной половине экрана откройте ../ site_name / projectName , в другой ../ site_name /venv/lib/python3.9/site-packages/django/contrib/admin . Скопируйте папку static со всем содержимым (там папка admin, где находятся css, fonts, img, js). Выполнить миграцию для создания таблиц из встроенных в Django моделей. Теперь можно создать суперпользователя, после чего, не сразу — ещё пару команд, можно будет зайти в красиво оформленную административную часть сайта. При заполнении данных суперпользователя, не вводите email. Просто нажмите enter. Ввод почты часто приводит к ошибке, если вам понадобиться (не знаю зачем), сможете добавить значение уже непосредственно в админке.
python manage.py migrate
python manage.py createsuperuser
Осталось немного: симлинк для опубликования статики и перезагрузка сервера. Которую придётся выполнять практически после каждого изменения на сайте. Зайдём в корневую папку сайта и выполним ещё две команды.
Related posts:
- Как можно зарегистрироваться в лайк
- Как настроить почту на reg ru
- Как увеличить кегль шрифта
- Как отогнать назад ноутбук