下面为大家详细讲解一下部署上线的操作,首先我们实现本地部署 然后在上传到腾讯云服务器, 当然你也可以使用别的服务器.
本地部署
部署前需要关闭调试,允许任何机器访问,我们需要在settings.py设置:
DEBUG = False ALLOW_HOSTS=['*']
1)安装uWSGI
uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器。uWSGI代码完全用C编写,效率高、性能稳定。
pip install uwsgi
2)配置uWSGI,在项目目录下创建uwsgi.ini文件,配置如下:
[uwsgi]
# Django-related settings
http = 127.0.0.1:8000
#socket = 127.0.0.1:8000
#项目路径
chdir = /Users/tian/Desktop/1807projects/项目名
module = MyBlog.wsgi
master = true
processes = 4
threads = 2
daemonize = uwsgi.log
pidfile = uwsgi.pid
#虚拟环境
virtualenv = /Users/tian/.virtualenvs/虚拟环境名
收集静态资源
#在settings.py中放入下面设置
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
# 在项目路径下执行下面命令收集资源
python3 manage.py collectstatic
配置完可以启动uWSGI
uwsgi 使用命令
启动: uwsgi --ini uwsgi.ini
查看: ps -aux|grep uwsgi
停止: uwsgi --stop uwsgi.pid
- 注意每次修改项目内容都需要重启uWSGI
安装nginx 默认路径/etc/nginx
sudo apt install nginx
cd /etc/nginx 进入nginx目录编辑nginx.cong
写到http括号下
http{
.......
server {
listen 80;
# 需要服务器地址
server_name 127.0.0.1;
#动态请求
location / {
include uwsgi_params;
# 需要修改
uwsgi_pass 127.0.0.1:8000;
}
#静态
location /static {
#需要修改静态路径
alias /Users/tian/Desktop/py_projects/MyBlog/static ;
}
}
}
配置完可以启动nginx
nginx 使用命令
/etc/init.d/nginx start 启动
/etc/init.d/nginx stop 或killall -9 nginx 关闭
/etc/init.d/nginx restart 重启
在浏览器中输入网址 http://127.0.0.1:8080/
服务器
登录腾讯云服务器,选中你的服务器修改密码重启, 进入服务器部署
一, 首先打开终端远程登录服务器: ssh ubuntu@服务器公网ip 输入密码
二, 执行下面两条命令 sudo apt update 和 sudo apt upgrade (一直回车就行)
三, 安装pip sudo apt install python3-pip
四, 安装虚拟环境 sudo pip3 install virtualenv
可能会出错,下面为大家提供一个解决办法,在终端使用下面的命令:
export LC_ALL=C
五, sudo pip3 install virtualenvwrapper
六, 配置虚拟环境
vi .bashrc
复制这三条命令到.bashrc
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
激活
source .bashrc
七, 创建虚拟环境 mkvirturalenv 名称
八, 安装数据库 sudo apt-get install mysql-server mysql-client
九, (本地):导出本地数据库 mysqldump -uroot -p 数据库名 > /Users/tian/Desktop/blog.sql
十, (本地进入项目目录):导出本地依赖第三方 pip freeze > requirements.txt
十一, 把数据库,依赖文件和源码上传到服务器,可以使用git,ftp,scp 我使用的是scp
- scp blog.sql -r ubuntu@94..90. /home/ubuntu
- scp blog.sql -r ubuntu@94..90.:/home/ubuntu
- scp freeze.txt -r ubuntu@94..90.:/home/ubuntu
十二, 进入mysql创建一个和本地数据库名字一样的数据库,并导入数据
- mysql -u root -p 回车 输入密码
- create database 数据库名 charset=utf8;
- source /home/ubuntu/blog.sql
十三, 安装nginx和uwsgi
- sudo apt-get install nginx
uwsgi需要切换到环境下安装
- workon 名称 (此处输入在第七步创建的环境名称)
- pip install uwsgi
十四, 配置nginx和uwsgi, 这一步和上面配置本地部署一样,请参考上面
启动uwsgi
uwsgi --ini uwsgi.ini 启动
uwsgi --stop uwsgi.pid 关闭
启动nginx
/etc/init.d/nginx start 启动
/etc/init.d/nginx stop 或killall -9 nginx 关闭
/etc/init.d/nginx restart 重启