#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