部署使用gunicorn的wsgi服务器,django的app端,使用supervisor进行进程管理。暂时没部署nginx反向代理。
1.使用virtualenv创建虚拟环境,用于工程环境隔离
virtualenv djangoProject
2.创建django工程
进入虚拟环境
root@raspberrypi:/home/pi/study/python/djangoProject/bin# source activate
(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/bin#
创建myproject工程
django-admin startproject myproject
3.安装gunicorn
(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/myproject# apt install gunicorn
4.配置gunicorn
在工程目录创建gunicorn_config.py,vi写入
pythonpath='/home/pi/study/python/djangoProject/lib/python2.7/site-packages/'
bind=':6001'
由于使用virtualenv创建的django运行环境,所以pythonpath需要填入当前虚拟环境的python路径,这样gunicorn在启动的时候自动查找virtualenv创建的环境,就在虚拟环境中运行django项目了,否则报错找不到django.cors.wsgi模块,此处配置也是bind为启动ip和端口号,0.0.0.0:6001
5.启动gunicorn
(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/myproject# gunicorn -c gunicorn_config.py myproject.wsgi
myproject.wsgi其中,myproject是包名,wsgi是包下面的wsgi.py模块,默认由django-admin生成,此处用点,而不是用路径的"/"
6.安装supervisor
(djangoProject) root@raspberrypi:/home/pi/study/python/djangoProject/myproject# apt install supervisor
7.配置supervisor
创建配置文件,这里已经创建好了
(djangoProject) root@raspberrypi:/etc/supervisor/conf.d# ll
total 4
-rw-r--r-- 1 root root 176 Jan 11 11:30 djangoProject.conf
vi写入配置信息
[program:djangoProject]
directory=/home/pi/study/python/djangoProject/myproject
command=gunicorn -c gunicorn_config.py myproject.wsgi
user=root
autostart=true
autorestart=true
8.启动supervisor
加载更新的配置文件
supervisorctl update
启动项目
supervisor> start djangoProject
9.创建admin超级用户
python manage.py createsuperuser
10.初始化数据库
创建数据库迁移
python manage.py makemigrations
应用数据库迁移
python manage.py migrate
11.VNC桌面使用chrome登录
总结:简单部署成功,后续需要对gunicorn和supervisor进行更详细的配置,例如log日志,进程数量,线程数量,超时设置等等。