django部署
一、前期准备工作:
1、用pip free > requirements.txt 将当前环境的包导出到 requirements.txt文件中,方便在部署的时候安装。
2、将项目文件上传到服务器/srv文件下面(/srv :主要用来存储本机或本服务器提供的服务或数据。(用户主动生产的数据、对外提供服务)
3、使用git管理项目:(码云)
1、git init 将当前项目根目录变成git初始化仓库;
2、git remote add origin xxx.git(可以使用http或ssh)
3、git add . 添加本地代码(工作区中)
4、git commit -m "first commit" (添加到仓库中)
5、git pull origin master --allow-unrelated-histories(码云仓库到本地)
6、git push origin master(本地到码云)
4、安装
1、sudo apt install python sudo apt install python-pip
2、虚拟环境安装:
1、pip install virtualenv
2、pip install virtualenvwrappe
3、vim ~/.bashrc进入文件中,添加以下代码:记得重新source ~/.bashrc
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
# 虚拟环境存储的目录
export WORKON_HOME=$HOME/.virtualenvs (默认将虚拟环境放在家目录下的.virtualenvs中)
source /usr/local/bin/virtualenvwrapper.sh
5、在服务器上下载git(srv)
1、进入srv创建项目文件夹;
2、git init ->git remote add origin xxx.git->git pull origin master ,输入用户名密码
3、在虚拟环境下,安装第三方包,pip install -r requirements.txt
4、再数据库中,穿件相应的数据库;
5、执行 python manage.py migrate
6、在setting.py文件中设置,ALLOWED_HOSTS=['*'],DEBUG=FLASE
(本地修改后,推送:git add .->git commit -m "first commit" -> git push origin master)
(服务器上:git pull origin master)
7、python run server 0.0.0.0:8000
8、收集静态文件:python manage.py collectstatic,在项目中新建static_dist文件夹,setting.py中设置STATIC_ROOT=os.path.join(BASE_DIR,'static_dist')
6、安装uwsgi及配置
1、uwsgi是应用服务器,用pyhton编写,一是接受nginx过来的请求,二是执行django代码并返回;
2、在系统级别中安装(deactivate退出虚拟环境),pip isntall uwsgi
3、使用:uwsgi --http:8000 --module xxx.wsgi --virtualenv /root/.virtualenvs/mywork
4、配置ini(在项目目录下新建xxx_uwsgi.ini)
[uwsgi] # Django相关的配置 # 必须全部为绝对路径 # 项目的路径 chdir = /srv/zhiliaoketang # Django的wsgi文件 module = zhiliaoketang.wsgi # Python虚拟环境的路径 home = /root/.virtualenvs/django-env-py2
#http:8000 # 进程相关的设置 # 主进程 master = true # 最大数量的工作进程 processes = 10 # socket文件路径,绝对路径 socket = /srv/zhiliaoketang/zhiliaoketang.sock # 设置socket的权限 chmod-socket = 666 # 退出的时候是否清理环境 vacuum = true ``` 然后使用命令`uwsgi --ini zhiliaoketang.ini`,看下是否还能启动这个项目。
5、nginx配置
upstream zhiliaoketang { server unix:///srv/zhiliaoketang/zhiliaoketang.sock; #自动创建,与uwsgi文件的sock地址一样 } # 配置服务器 server { # 监听的端口号 listen 80; # 域名 server_name 192.168.0.101; charset utf-8; # 最大的文件上传尺寸 client_max_body_size 75M; # 静态文件访问的url location /static { # 静态文件地址 alias /srv/zhiliaoketang/static_dist; } # 最后,发送所有非静态文件请求到django服务器 location / { uwsgi_pass zhiliaoketang; # uwsgi_params文件地址 include /etc/nginx/uwsgi_params; } }

浙公网安备 33010602011771号