此文纯步骤,是我第一次部署项目到服务器,当时有很多不理解,操作也偏生涩
但依据此文步骤能完整部署整个项目,从数据库直到前端
所以我不再做更改,希望能帮助到一些人
1.虚拟环境安装
pip install virtualenv
2.虚拟环境管理包
apt install virtualenvwrapper
3.新建.virtualenvs文件夹
mkdir .virtualenvs
4.修改.bashrc文件,在最后添加
export WORKON_HOME=/root/.virtualenvs
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
5.执行以下命令
source .bashrc
6.新建虚拟环境
mkvirtualenv EnvName -p /usr/bin/python3.5
7.打包原环境依赖
pip freeze > requirements.txt
8.安装到新环境
pip install -r requirements
9.安装mysql
apt install mysql-server
mysql -u root -p root
create database mydatabase charset utf8;
10.cd到家目录下,下载nginx的key
cd ~
wget http://nginx.org/keys/nginx_signing.key
11.安装key
apt-key add nginx_signing.key
12.vim编辑器打开/etc/apt/sources.list
vim /etc/apt/sources.list
13.在最后面添加两句话,ubuntu16.04的codename为xenial,保存退出
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
14.更新源
apt-get update
15.安装nginx
apt-get install nginx
16.测试启动nginx
nginx
17.查看nginx进程
ps -ef | grep nginx
18.在阿里云上,修改nginx配置文件
vim /etc/nginx/nginx.conf
19.需要加上以下内容
在原有内容中http大括号下需要加上:
server{
listen 80;
server_name 公有地址; # 端口号不需要写,默认
charset utf-8;
root /var/www/Project; # 去创建一个这样的文件夹放项目源文件
location / { # 项目中所有的东西,除了静态文件
include /etc/nginx/uwsgi_params; # uwsgi的参数的路径
uwsgi_pass localhost:8010; # 要将请求转发给阿里云机器的uwsgi,端口8010
}
location /static { # 项目中静态文件的路径
alias /var/www/Project/static/; 项目的静态文件
}
}
20.在阿里云服务器官网上设置访问权限,然后访问公网IP,即可看到nginx欢迎页面
设置路径:云服务器>更多>网络与安全组>安全组配置>配置规则>添加安全组规则
新建规则配置如下:
{
网卡类型:内网
规则方向:入方向
授权策略:允许
协议类型:全部
端口范围:-1/-1
优先级:1
授权类型:地址段访问
授权对象:0.0.0.0/0
描述:
}
21.把项目压缩成单个zip压缩包,然后安装拖拽工具
apt install lrzsz
22.在阿里云服务器上新建对应的文件夹,将项目拉进去
mkdir /var/www
23.在阿里云上安装解压工具
apt install unzip
24.解压项目压缩包
unzip Project
25.删除项目压缩包
rm -rf Project.zip
26.更改项目settings中,DEBUG和ALLOWED_HOST配置
DEBUG = False
ALLOWED_HOST = ["*"]
python manage.py makemigrations
python manage.py migrate
在mysql中,查看表是否生成
use mydatabase;
show tables;
贴入SQL语句导入数据。
27.在项目工程目录下,安装uwsgi
pip install uwsgi
如果报错,先退出虚拟环境,执行:apt install python3-dev
,再重新安装uwsgi
28.在项目的工程级目录下,创建uwsgi.ini
文件,uwsgi的配置文件,内容如下
[uwsgi]
# 使用nginx连接时 使用
socket=127.0.0.1:8010
# 直接作为web服务器使用
# http=127.0.0.1:8010
# 配置工程目录
chdir=..../Project
# 配置项目的wsgi目录,相对于工程目录
wsgi-file=Project/wsgi.py
#配置进程,线程信息
processes=4
threads=2
enable-threads=True
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
29.测试启动uwsgi
uwsgi --ini uwsgi.ini
30.查看uwsgi进程
ps -ef | grep uwsgi
31.杀死nginx和uwsgi进程
kill -9 进程号
32.先重新启动nginx,并指定配置文件
nginx -c /etc/nginx/nginx.conf
33.然后重新启动uwsgi,并指定配置文件,在工程目录下执行
uwsgi --ini uwsgi.ini
nginx的重启命令:nginx -s reload
nginx的停止命令:nginx -s quit
nginx的强制停止命令:nginx -s stop