Участвуйте в три дня, наконец, Django успешно развернуты в Ubuntu, запишите его;
Цитируется из пузыря чай :
Проект Nginx + Uwsgi + Django под процессом развертывания Ubuntu подробно
Описание помещения:
Джанго в качестве серверного апплета, запрос апплета из-за бэкэнд HTTPS запросы, поэтому Django должен поддерживать протокол HTTPS запросов
ОТ РЕДАКЦИИ:
Перед развертыванием проекта Django, Django поставляется с первым сервером беготни, чтобы увидеть, если нет проблем, то развертывание, в противном случае сам проект может иметь проблемы, но это не приводит к развертыванию права
Выполните команду: питон manage.py runserver .....
Различные конфигурации:
1, поддержка Nginx HTTPS запросы
nginx.conf 1) Конфигурация объекта проекта
Выше Nginx потребности компонента # Подключения к вышестоящим Джанго { # UNIX: ///home/breavo/PyWorkSpace/mysite_code_shuffle/config/eshop.sock Сервер xx.xx.xx.xx: 8002; # xx.xx.xx.xx IP является сервером, если облако серверов Tencent, сервер является внешним IP, где ф и порт находятся в связи и uwsgi варианте, тот же профиль и uwsgi.ini } # серверная конфигурация сервера { # ваш порт сайта быТь ON служил Волей прослушивания SSL 90; # порт прослушивания может быть любой порт, но порт был использован и не конфликтный # прослушивания 8003; # в имени домена IT по прослужит server_name indoor.crazymonkey.ml; # здесь это имя домена также может быть родной IP, с выше xx.xx.xx.xx кодировок UTF- 8;. # макс Загрузить размер client_max_body_size 75М; # ADJUST Испытать # SSL Конфигурация SSL на; # открытой проверки SSL, поддержка HTTPS запросы ssl_certificate /root/hewenjuan/Indoor_Localization/2446810_www.preciselocation.top.pem; # SSL сертификат ставится в положение ssl_certificate_key /root/hewenjuan/Indoor_Localization/2446810_www.preciselocation.top.key; # используя абсолютный путь , конечно , настоящие друг # Джанго Медиа РАСПОЛОЖЕНИЯ / Медиа { Алиас / корень / hewenjuan / Indoor_Localization / СМИ; # медиафайлы вашего Джанго проекта - мерзавец совершить внести необходимые изменения, есть фотографии и т.д., } РАСПОЛОЖЕНИЕ / статический { # Алиас / путь / к / вашему / в MySite / статические; # вашего проект Django APOS статических файлов - мерзавец фиксации внести необходимые изменения Алиаса / корневой / hewenjuan / Indoor_Localization / статические; # статического расположения файла, Django проекта администратор статических файлы } # окончательно, посылать все запросы без средств массовой информации к Джанго сервер. место / { uwsgi_pass Джанго; # это ссылка на вышеуказанную конфигурацию верхнего Джанго # Включить / дом / breavo / PyWorkSpace / mysite_code_shuffle / конфигурации / uwsgi_params; # В uwsgi_params файл , который вы установили включить / и т.д. / Nginx / uwsgi_params; } }
Примечание: Проверьте правильность указанного выше файла с Nginx Nginx -t команды
2), расположенный, соответствующий элементу uwsgi.ini
Mysite_uwsgi.ini File # [к uwsgi] Гнездо = xx.xx.xx.xx: # 8002 Tencent облака внутренний IP, порт и часть nginx.conf Джанго же конфигурации # Джанго настройки , связанные # Базовый каталог (полный путь) в Chdir = / Indoor_Localization # Джанго директория проекта / корень / hewenjuan # Файл Джанго WSGI в модуль = Indoor_Localization.wsgi # # Модуль = конфигурации / hello.py: Заявление / wsgi.py положение wsgi_file = Indoor_Localization # Джанго wsgi.py проект , расположенный, по отношению к началу ChDir Catalog # wsgi_file = /root/hewenjuan/Indoor_Localization/config/hello.py:application # в virtualenv (Полный путь) virtualenv = /root/.pyenv/versions/indoorLocation/bin/python3.6 # Python виртуальной среды абсолютное положение # дом = /root/.pyenv дом = /root/.pyenv/versions/indoorLocation # Настройки связанные с процессом # мастер мастер = истина # максимальное количество рабочих процессов процессов = 10 # сокет (используйте полный путь , чтобы быть безопасным # гнездо = /root/hewenjuan/Indoor_Localization/Indoor_Localization.sock # ... с соответствующими разрешениями - может быть необходима CHMOD-сокет = 666 # ясных сред на выход вакууме = TRUE статистик =% (CHDIR) /config/uwsgi.status PidFile =% (ChDir) /config/uwsgi.pid # демоном =% (Chdir) /config/uwsgi.log # открыть поле, uwsgi работает в фоновом режиме, сохранять в файл журнала, если поле не включается, а затем запустить на переднем плане, журнал отображается на экране ( удобство отладки) # PidFile =% (ChDir) / конфигурации /uwsgi.pid #plugins = /root/.pyenv/versions/indoorLocation/bin/python3.6
3) Каждый раз, когда вы изменяете код файла проекта Django, необходимо перезапустить uwsgi и Nginx, поэтому он написал загрузки файла start.sh
killall -9 uwsgi # закрыть весь процесс uwsgi, иногда не выключая последний процесс uwsgi начнет новую ошибку и другие проблемы -9 uwsgi # Количество killall, иногда будет закрыт , как только ситуация не выключить uwsgi --ini mysite_uwsgi.ini # начать mysite_uwsgi.ini файлы , которые начинаются uwsgi процесса перезапустить /etc/init.d/nginx процесс перезапуска # Nginx
Описание: Запустить start.sh команду: ш start.sh
2, uwsgi поддержка HTTPS запросы
1) uwsgi.ini расположение
# Mysite_uwsgi.ini файл [uwsgi]
# 2446810_www.preciselocation.top.pem, 2446810_www.preciselocation.top.key是证书SSL HTTPS = xx.xx.xx.xx: 443,2446810_www.preciselocation.top.pem, 2446810_www.preciselocation .top.key # xx.xx.xx.xx是腾讯云内部IP # настройки Django связанные # базовый каталог (полный путь) ChDir = / корень / hewenjuan / Indoor_Localization файл WSGI # Джанго модуль = Indoor_Localization.wsgi # модуль = конфиг / hello.py: применение wsgi_file = Indoor_Localization / wsgi.py # wsgi_file = /root/hewenjuan/Indoor_Localization/config/hello.py:application # virtualenv (полный путь) virtualenv = /root/.pyenv/versions/indoorLocation/ бен / python3.6 # Дом = /root/.pyenv дом = /root/.pyenv/versions/indoorLocation # настройки связанные с процессом # мастер мастер = истина # максимальное количество рабочих процессов процессов = 10 # сокет (используйте полный путь , чтобы быть безопасным # гнездо = /root/hewenjuan/Indoor_Localization/Indoor_Localization.sock # ... с соответствующими правами - может быть необходима CHMOD-сокет = 666 # ясных среды на выходе вакууме = TRUE статистик =% (ChDir) /config/uwsgi.status PidFile = % (ChDir) /config/uwsgi.pid # демон =% (ChDir) /config/uwsgi.log # PidFile =% (ChDir) /config/uwsgi.pid #plugins = /root/.pyenv/versions/indoorLocation/bin/python3.6
Проблемы, возникающие:
1, каждый раз, когда вы выходите из аккаунта будет предложено снова войти в систему, pyenv не существует
Причина:
Метод: Командная строка: источник ~ / .bashrc, т.е. .bashrc исполнение файла заявление (заявления инициализации включают pyenv)
2, Nginx вопрос прав: Джанго админ стиль фона не отображается, просмотреть журнал ошибок Nginx (Location: /var/log/nginx/error.log), отказано в разрешении отображения Permission Denied
Разрешения на выполнение статических файлов в проекте Django не хватает: Reason
Методы: Откройте файл /etc/nginx/nginx.conf, изменять пользовательские WWW-данные для корневого пользователя (корень: имя вашей учетной записи в настоящее время вошли в систему, это может быть другой Ubuntu)
参考qingspace : https://www.cnblogs.com/qingspace/p/6838747.html
3, недоступен модификатор просил
Причина: Виртуальная среда не является активным питоном
Метод: Введите команду: pyenv активировать хх хх активировать среду хх ваш проект, где виртуальная среда питон
4, в зависимости установки проекта: пип установка -r requirements.txt, столкнулась с проблемой: установка не удалось, интерфейс не показывает безуспешный
Успешно ... показано ниже появляется только представляет успешную установку
Причина: requirements.txt файл имеет win_xx установочного пакета, то есть питон система установки пакет окно доступа используется, подобный win32 и т.д., что может быть удалено;
Так как можно написать код, используя оконную систему, при развертывании в системе Linux
Решение: Удалить win32 и другой пакет установки для оконных систем