Меню Рубрики

Установка django на timeweb

Публикация Django-проекта на хостинге Timeweb

Проблема заключается в том, что не получается разместить Django проект на хостинге Timeweb, а если более конкретно то не понимаю какая должна быть иерархия у файлов на сервере.

Подключаюсь к серверу через SSH протокол, создаю виртуалку, файлы index.wsgi и .htaccess согласно этой инструкции, клонирую git репозиторий туда, потом через панель на Timeweb «создаю сайт» и указываю папку с клоном. При переходе по доменному имени ничего не происходит.

Так же пробовал создавать через выбор CSM в панели Timeweb, но так же безрезультатно.

И такой еще вопрос, как поступить с БД? Разрабатывал на SQLite

Прямой эфир

Я бы советовал для начала выбрать движок Joomla или WordPress

Напишите подробнее на почту web@urlvir.ru

На сайте увидеть можно? Или где выходит ошибка?

5 ответов

С полгода назад ставил на Django проект на Timeweb. Сам не справился, в поддержке получил следующую инструкцию (она вроде бы несколько отличается от той, что по ссылке, надеюсь поместится). Попробуйте ей проследовать, а если на каком-то этапе будет ошибка, пишите на каком и домен вашего сайта, посмотрим что еще можно предпринять:

Вы можете произвести установку виртуального окружения в Вашу домашнюю директорию, после чего можно использовать pip для установки библиотек Python. Подробно о том, что представляет из себя виртуальное окружение Python, Вы можете прочитать в документации, которая доступна по адресу https://virtualenv.pypa.io/en/latest/

Установить виртуальное окружение можно следующими командами:

curl -O https://pypi .python .org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
tar xvfz virtualenv-X.X.tar.gz
cd virtualenv-X.X/
python virtualenv.py

/myenv
где Х.Х — необходимая версия virtualenv

Для активации локального виртуального окружения используется source:

После того как Вы произведете установку и активацию виртуального окружения, Вы сможете установить django с помощью pip:

Далее, чтобы развернуть проект, необходимо создать файл .htaccess в папке public_html сайта со следующим содержанием:

Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond % !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]

Также необходимо создать файл index.wsgi. Для версии django меньше 1.7 c содержанием:

sys.path.append(‘/home/u/user/app/’) #путь до проекта django
sys.path.append(‘/home/u/user/myenv/lib/python2.7/site-packages/’) # путь до django
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘app.settings’ #app — название проекта django.

from django.core.handlers import wsgi
application = wsgi.WSGIHandler()

Для версии django 1.7 и выше c содержанием:

sys.path.append(‘/home/u/user/app/’) #путь до проекта django
sys.path.append(‘/home/u/user/myenv/lib/python2.7/site-packages/’) # путь до django
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘app.settings’ #app — название проекта django.

import django
django.setup()

from django.core.handlers import wsgi
application = wsgi.WSGIHandler()

Именно этой инструкцией я и пользовался, но все равно ничего не выходит, переход по домену дает ровным счетом ничего, а именно «Не удается получить доступ к сайту»
Путь в index.wsgi прописал точно до проекта
Нет никаких идей как это все отлаживать(

А у вас в итоге получилось запустить проект?
Где должна лежать папка public_html и что в ней должно находиться кроме index.wsgi и .htaccess?

Обычно ошибка «Не удается получить доступ к сайту» отдается браузером, когда нет доступа к ресурсу, обычно это не проблемы проекта или кода.

Попробуйте проверить доступ к сайту через консоль, к примеру тем же пингом, должен отдаваться ip сервера, если отдается нужный, то попробовать другой браузер или режим инкогнито, если отдается другой ip, то стоит проверить настройки компа(hosts) или настройки домена, может задан ip другого сервера

«Так же пробовал создавать через выбор CSM в панели Timeweb, но так же безрезультатно»

Почему -же? все ставится прекрасно из коробки. Я по началу был в восторге!
Другое дело если вам будут нужны сторонние зависимости, например Pillow для картинок, то поставить не получится, у вас не будет прав. Поэтому только virtualenv по инструкции выше..

Структуру своего проекта я сделал такую-же как и делает timeweb при установки django из панели. Там есть отличия от локального сервера: static и media вынесены в public_html. .htaccess и index.wsgi делаете как написано в инструкции выше. Все там должно работать. Единственное я не знаю что нужно сделать, чтобы не вываливалась 500 когда юзер пытается загрузить файл с русскими буквами. Пробовал прописывать utf-8, не получилось.

Читайте также:  Установка карбюратора на бензогенератор

С MySQL работаете так-же как и SQLite. Создаете базу, в настройках settings.py указываете ее параметры. Не забываем в окружении поставить pip install MySQL-python >Миграции > суперюзер > Экран приветствия!

Если хотите использовать SQLite? Проблем не должно быть, разве что пароли указать и хост. Поддержка SQLite вроди как встроена в python изначально.

Совет, поставте django из коробки, посмотрите какой там settings.py .htaccess index.wsgi, пермишены на папки. И уже свой проект в virtualenv по аналогии.

timeweb/django2.1.5/virtualenv-16.2.0/python3.5.2
Установка происходит, а вот с запуском косяки.

Создаем сайт с поддержкой python3.5
Заходим по ssh на хостинг

Установка окружения virtualenv
cd /home/u/user/
wget https://files. pythonhosted .org/packages/59/38/55dd25a965990bd93f77eb765b189e72cf581ce1c2de651cb7b1dea74ed1/virtualenv-16.2.0.tar.gz && tar xvfz virtualenv-16.2.0.tar.gz
python3.5 virtualenv-16.2.0/virtualenv.py

Активация окружения
source

Установка Django
pip install Django==2.1.5
можно без ==2.1.5
удаление если надо то pip uninstall Django

Установка прав Плохой совет, но без него ошибка прав доступа при инициализации проекта.
chmod -R 777

Инициализация проекта, тут я не уверен 🙂
удалить каталог public_html
django-admin.py startproject каталогВашегоСайта

Создание символической ссылки на ваше приложение оно одноименно с именем каталога вашего сайта, поээтому такая странная ссылка получается.
ln -s

источник

Простая установка Django на Ubuntu 16.04 для начинающих программистов

Установка Django на Ubuntu 16.04 — непростая задача, поскольку процесс инсталляции вызывает ряд сложностей у новичков. В интернете иногда не получается найти полную информацию по этому вопросу.

Общие сведения

Чтобы правильно выполнить установку Django на Ubuntu, нужно составить план изучения материала, состоящий из следующих элементов:

  1. Необходимое программное обеспечение.
  2. Установка виртуального окружения.
  3. Установка Django в виртуальную среду.

Нужно четко следовать по алгоритму. Запрещается перескакивать с одного пункта на другой.

Программное обеспечение

Перед запуском инсталляции Django надо определиться с программной средой, в которой будет писаться код web-приложения. Рекомендуется использовать кроссплатформенную среду разработки PyCharm (совместимость с такими ОС: Windows, Linux и MacOS). Для установки программы необходимо придерживаться следующей инструкции:

1. Запустить терминал Linux Ubuntu.

2. Удалить виртуальную среду для Java-приложений:

4. Обновить информацию о репозиториях в Ubuntu:

5. Установка Java-окружения (виртуальной машины):

6. После корректной инсталляции следует скачать PyCharm с официального сайта (Professional): http://www.jetbrains.com/pycharm/download/index.html#section=linux

9. Распаковать в текущую директорию:

10. Далее необходимо запустить приложение. Для этого необходимо зайти в папку bin PyCharm (cd /bin/) и выполнить команду:

Однако не рекомендуется постоянно запускать среду разработки таким методом. Необходимо на рабочем столе создать ярлык при помощи команды:

После этого следует прописать в файле следующие строки (с учетом собственных данных):

Далее нужно сохранить файл и сделать исполняемым. Для этого следует его выделить и щелкнуть правой кнопкой мыши, выбрав «Свойства»: свойства → права → разрешить выполнение файла как программы. Запускать не нужно, поскольку Django еще не установлен.

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

Для создания проектов программисты применяют виртуальные окружения для работы сразу с несколькими проектами. Это объясняется тем, что для каждого продукта необходимы базовые библиотеки. Чтобы создать виртуальное окружение, необходимо придерживаться такой инструкции (работа выполняется в терминале):

1. Установить утилиту виртуального окружения:

2. Перейти в домашнюю директорию:

4. Перейти в созданную папку:

5. Запуск подготовительной команды перед установкой Django:

Следует отметить, что создастся виртуальная среда для дальнейшей установки.

7. Непосредственная установка фреймворка:

8. После завершения инсталляции необходимо приступить к настройке среды разработки.

Настройка PyCharm

Нужно запустить PyCharm при помощи ярлыка. После этого требуется выбрать интерпретатор из виртуального окружения, как показано на рисунке 1. Рисунок 1. Выбор интерпретатора.

Если интерпретатора нет в списке, то следует выполнить действия по ручному выбору интерпретатора из виртуального окружения (рис. 2). Рисунок 2. Ручная установка.

Затем надо выбрать папку virtualenves/Django/bin/python и подтвердить действие. После этого начнется обновление скелетонов и инициализация файловой структуры в виртуальном окружении. Если операции выполнены без ошибок, то приступить к созданию веб-приложений.

источник

Как использовать PostgreSQL c приложением Django на Ubuntu 16.04

Введение

Django – это известный гибкий фреймворк, который используется для создания приложений на языке программирования Python. Обычно (по умолчанию) приложения на Django используют в качестве хранилища для своих файлов базу данных (БД) SQLite, которая отличается легковесностью и простотой. Несмотря на то, что иногда подобная связка работает вполне неплохо, для увеличения производительности рекомендуется использовать более традиционную систему управления базами данных (СУБД), к примеру, PostgreSQL.

Читайте также:  Установка датчика масла в коробке

Из данного руководства вы узнаете, как установить и настроить СУБД PostgreSQL для работы с приложением на Django. Здесь будут описаны все этапы: от установки необходимого программного обеспечения и создания учетных данных БД до запуска и настройки нового Django-приложения.

Требования

Перед тем, как приступить к установке, убедитесь, что у вас есть новый сервер, на котором установлена операционная система (ОС) Ubuntu 16.04, и создан новый пользователь (не суперпользователь), который может выполнять команды sudo.

Теперь авторизуйтесь в качестве этого пользователя и проступите к выполнению следующих инструкций.

Устанавливаем компоненты

Первым делом вы должны установить все необходимые компоненты из репозитория. В частности, установите pip (менеджер пакетов Python) для того, чтобы дальше вы могли установить и работать с компонентами Python. Также вам будет нужно установить программное обеспечение базы данных и библиотеки, необходимые для работы с ней.

Версии Python 2 и Python 3 имеют немного разные пакеты, поэтому ниже выберите команды, соответствующие той версии Python, которая используется в вашем проекте.

Если вы используете Python 2, введите:

А если вы используете Python 3, выполните следующие команды:

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

Создаем базу данных и пользователя

По умолчанию для локальных соединений PostgreSQL использует схему авторизации, которая называется “peer authentication” (можно перевести как «одноранговая авторизация»). Подобная схема позволяет провести авторизацию (без дальнейшей аутентификации) в случае, если имя пользователя ОС совпадает с именем действующего пользователя PostgreSQL.

Во время установки PostgreSQL создается пользователь ОС с именем postgres, которое соответствует имени администратора PostgreSQL. При помощи этого пользователя вы сможете выполнять административные задачи. Для того, чтобы авторизоваться под ним, вам необходимо выполнить команду sudo с ключом -u.

Начните сессию в PostgreSQL, используя команду:

Первым делом вам нужно создать базу данных для вашего проекта на Django. Из соображений безопасности будет лучше, если каждый проект будет иметь свою собственную изолированную базу данных. Название базы данных должно быть описательным и вам понятным, но в данном руководстве в качестве примера будет использоваться база под названием myproject:

Примечание.
Все SQL-команды обязательно должны заканчиваться точкой с запятой.

Далее вам необходимо создать нового пользователя базы данных (myprojectuser) для того, чтобы подключиться к базе данных и взаимодействовать с ней. Обязательно установите длинный и сложный пароль:

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

Установите UTF-8 в качестве кодировки по умолчанию (это необходимо для Django). Уровень изолированности транзакций нужно по умолчанию установить как “read committed” (чтение фиксированных данных) – этот уровень обеспечивает защиту от чернового чтения. Не забудьте про временную зону: изначально проекты на Django имеют установку UTC. Чтобы выполнить все изменения, нужно ввести следующие команды:

Теперь последнее, что необходимо сделать, это дать только что созданному пользователю права доступа к созданной базе:

Теперь выйдите из командной строки SQL, возвратившись к postgres сессии пользователя:

Устанавливаем Django

После создания и настройки базы данных вам нужно перейти к установке Django. Для большей гибкости установите Django и его зависимости в виртуальном окружении Python. Вы сможете легко это сделать при помощи пакета virtualenv.

Если вы используете Python 2, тогда используйте эту команду:

Если используете Python 3, то вам нужно ввести следующую строку:

Создайте новую директорию, в которой будет храниться ваш проект на Django, и перейдите в нее:

Затем создайте виртуальное окружение, где будут храниться требования (“requirements”) Python, касающиеся вашего проекта на Django:

Читайте также:  Установка акустическая полка на гранту установка

После этого в директории myprojectenv (внутри директории вашего проекта) будут установлены локальная копия Python и система управления пакетами pip.

Перед тем, как приступить к установке приложений в виртуальном окружении, вам необходимо активировать его, используя следующую команду:

По изменившемуся виду командной строки вы сможете понять, что теперь вы работаете в виртуальном окружении. Она будет выглядеть примерно так (myprojectenv)user@host:

Теперь, когда ваше виртуальное окружение активировано, вы можете перейти к установке Django при помощи pip. Также вы обязательно должны установить пакет psycopg2, который позволит использовать установленную ранее базу данных.

Примечание.
Вне зависимости от того, какую версию Python вы используете, когда виртуальное окружение включено, вам нужно использовать команду pip (а не pip3).

Далее вы можете приступить к созданию проекта на Django в директории myproject. В результате будет создана дочерняя директория с таким же названием, в которой будет находиться код; также внутри данной директории будет создан управляющий скрипт. Для того, чтобы команда была выполнена правильно, обязательно поставьте в конце точку:

Настраиваем базу данных

Теперь, когда у вас есть свой проект, вам необходимо настроить его так, чтобы в нем использовалась та база данных, которую вы создали ранее.

Для этого нужно открыть файл с основными настройками проекта на Django, который находится в дочерней директории проекта:

Ближе к концу файла вы увидите секцию DATABASES, которая выглядит примерно так:

Согласно настройкам, на данный момент в проекте используется база данных SQLite; вам нужно изменить настройки так, чтобы использовалась база данных PostgreSQL.

Во-первых, измените бэкэнд базы данных (графа “engine”) так, чтобы вместо sqlite3 использовался postgresql_psycopg2. Далее в качестве используемой базы данных (графа “NAME”) пропишите название своей базы данных (в данном случае myproject). Также необходимо добавить учетные данные для входа в систему: понадобится имя пользователя, пароль и хост для подключения (графы “USER”, “PASSWORD”, “HOST”). Добавьте и графу, касающуюся порта (“PORT”), однако прописывать в ней ничего не нужно – в этом случае это будет обозначать настройку по умолчанию. В итоге блок с DATABASES должен выглядеть так:

После всех необходимых изменений сохраните и закройте файл.

Перенесим базу данных и тестируем проект

Настройка проекта на Django завершена, и теперь вам нужно перенести данные в созданную базу данных и протестировать проект на сервере.

Первым делом вам необходимо создать и применить миграции к базе данных. Так как на данный момент еще нет фактических данных, то вы можете просто установить изначальную структуру базы данных.

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

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

Если вы используете UFW Firewall, то крайне важно перед тестированием проекта открыть необходимый порт:

Теперь вы можете перейти непосредственно к тестированию и убедиться, что ваша база данных работает корректно, запустив сервер разработки Django при помощи следующей команды:

Для того, чтобы попасть на приветственную страницу Django, введите в браузере адрес вашего сайта либо ip-адрес, дописав в конце :8000 (номер порта).

http:// доменное_имя_или_IP-адрес :8000

Вам должна высветиться начальная страница Django:

Добавьте в конце адресной строки /admin, и вы попадете на страницу входа в административную панель:

Введите имя пользователя и пароль, которые вы указали при использовании команды createsuperuser, и вы попадете в административную панель:

После того, как вы выполнили все необходимые проверки, остановите сервер разработки, нажав Ctrl-C в консоли.

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

Заключение

Из этого руководства вы узнали, как установить и настроить PostgreSQL в качестве базы данных для проекта на Django. Безусловно, для небольших проектов подойдет и изначально используемая база данных SQLite, однако большинство проектов на Django только выиграет при переходе на PostgreSQL.

источник

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

Adblock
detector