Копирование проекта Django на корневой сервер не работает

#python #django #deployment

#python #django #развертывание

Вопрос:

Надеюсь, вы сможете мне помочь.

Я создавал этот интернет-магазин для компании, в которой я работаю, с Django и Lightning Fast Shop.

Сейчас он в основном завершен, и я запускаю его на виртуальной машине Ubuntu на своем ПК. Поскольку это раздражало, оставляя мой компьютер включенным все время, чтобы другие могли получить доступ к сайту, я хотел развернуть его на корневом сервере. Итак, я получил JiffyBox и установил на него ubuntu.

Мне удалось заставить Gnome работать над ним и подключиться к нему с помощью VNC. Затем я загрузил свой готовый проект через FTP на сервер.

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

Это сработало, когда я протестировал его на своей виртуальной машине.

К моему разочарованию, он не работал на корневом сервере. Когда я попытался запустить «bin / django runserver», я получил сообщение об ошибке «bash: bin / django: отказано в разрешении», и когда я пытаюсь это сделать с помощью «sudo», я получаю «sudo: bin / django: команда не найдена»

Затем я понял, что загрузил более новую версию Django-LFS и попробовал ее с той же версией, но безрезультатно.

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

Приветствую, Krytos.

Комментарии:

1. Почему в мире вы работаете bin/django runserver ? Это когда-нибудь работало для вас?

Ответ №1:

Я понятия не имею, что такое «корневой» сервер. Но вы не развертываете Django, просто копируя файлы: вам нужно настроить веб-сервер. В документации есть очень подробное объяснение.

Ответ №2:

Я знаю, что некоторые из этих советов могут быть очевидными, но никогда не знает:

  • Вы обновляете все свои настройки в settings.py ? (пути к статическим файлам, путь к проекту …)
  • Какой сервер вы используете? сервер django? apache? nginx?
  • У вас есть разрешения на все файлы в проекте?Вы должны убедиться, что владельцем файлов является ваш пользователь, а не root. Если владельцем является root, у вас будет эта проблема с разрешениями для каждого файла, принадлежащего root.
  • Используете ли вы uwsgi?
  • Вы установили все приложения, которые у вас есть в вашей виртуальной машине?
  • Вы установили ТУ ЖЕ версию, что и в вашей виртуальной машине?

Когда я перемещаю проект с виртуальной машины на реальный сервер, я повторяю эти шаги:

  • Обзор settings.py и пути обновления
  • Проверьте разрешения в папке, которую может использовать веб-сервер
  • У меня есть список с пакетами и версиями в текстовом файле, назовем его packages.txt
  • Я устанавливаю все эти пакеты, используя pip install -r packages.txt
  • Я всегда использую apache / nginx, поэтому мне нужно обновить virtualhost до новых путей
  • Если я использую uwsgi, обновите настройки uwsgi

Чтобы понизить рейтинг некоторых пакетов pip, вам может потребоваться удалить egg файлы, потому что, если вы удалите пакет и переустановите его, несмотря на то, что вы используете pip install package==VERSION , если у вас уже загружен пакет, pip установит его, даже если ВЕРСИЯ отличается.

Для проверки актуальной версии пакетов pip используйте pip freeze

Чтобы экспортировать все пакеты pip в файл, импортировать их в другое место: pip freeze > packages.txt nad для установки пакетов из этого файла pip install -r packages.txt