Django项目部署详细步骤
1.创建python环境
python –V 查看python版本
which python 查看当前路径
进入当前路径/usr/bin
apt update 更新apt
apt-get install python3-pip 更新pip
ln –s python3 python 创建软连接
2.安装虚拟模块
pip install virtualenv 安装虚拟模块
pip install virtualenv virtualenvwrappr 提供简单的命令
apt-get install python-virtualenv
3.配置虚拟环境
cd 进入主目录
修改系统配置文件(.bashrc)
在末尾增加:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualevnwrapper.sh
source .bashrc 执行命令修改生效
mkdir .virtualenv 在主目录创建文件
4.创建虚拟环境
mkvirtualenv fresh(虚拟名字)
workon 查看虚拟环境
deactivate 退出虚拟环境
rmvirtualenv fresh(虚拟名字) 删除虚拟环境
5.安装uwsgi和nginx
进入虚拟环境安装uwsgi和nginx
pip install uwsgi
apt-get install nginx
6.测试nginx
测试nginx(80端口):
启动:nginx
停止:nginx –s stop
nginx –s quit
重新加载:nginx –s reload
nginx –s reopen
查看:ps –ef |grep nginx
安装links,在云服务器上测试是否成功:
apt install links
命令窗口测试:links http://localhost
网页测试输入:http://47.95.198.0/(在管理平台网络和安全中开放80端口才可以测试,否则超时)
7.收集环境
收集环境(在Windows中cmd中输入一下命令)
pip freeze > libs.txt
8.安装FTP服务器
安装FTP
apt-get install vsftpd
ps -ef|grep vsftpd 查看是否启动
FTP服务端配置
进入cd /etc/ àvi vsftpd.conf
打开文件操作权限 local_umask=022
打开用户可以上传文件 anon_upload_enable=YES
打开用户可以创建文件夹 anon_mkdir_write_enable=YES
FTP客户端操作
界面操作或者命令行操作
命令行操作:
ftp ip 登录ftp服务器
put file 上传一个文件
mput file 上传多个文件
get file 下载一个文件
mget file 下载多个文件
bye 退出命令行
上传文件(在cmd进行上传文件)
进入项目所在目录
scp –r E:\fresh root@47.95.198.0:/www/ (如果没有scp命令,直接使用winscp软件上传)
如果报错没有scp命令,则安装winscp图形化软件
9.测试
上传结束后,在服务端进入虚拟环境,进入到项目,安装项目所用到的环境
pip install -r libs.txt
若出现OSError: mysql_config not found错误
安装apt-get install libmysqlclient-dev python3-dev这个命令
然后启动项目python manage.py runserver
若出现django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 111] Connection refused)")错误
添加数据库解决mysql -u root –p
若出现
Command 'mysql' not found, but can be installed with:
apt install mysql-client-core-5.7
apt install mariadb-client-core-10.1
安装数据库(安装过程中设置数据库密码)
sudo apt-get install mysql-server
apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
进入数据库mysql -u root -p
创建数据库create database fresh default charset 'utf8';
查看数据库show databases;
创建好之后进行数据同步
python manage.py migrate
python manage.py runserver 0.0.0.0:80 若80端口被占用则暂停nginx
10.配置uwsgi.ini
在项目路径下vi uwsgi.ini
[uwsgi]
http=:80
chdir=/root/www/fresh
wsgi-file=fresh/wsgi.py
master=true
processes=2
threads=2
daemonize=uwsgi.log
pidfile=uwsgi.pid
uid=root
gid=root
static-map=/static=static_file
运行uwsgi命令: uwsgi --ini uwsgi.ini
停止uwsgi命令:uwsgi --stop uwsgi.pid
查看进程ps -ef|grep uwsgi.ini
查看日志 more uwsgi.log
收集静态文件
在项目下创建static_file文件夹,编辑setting.py,添加:
STATIC_ROOT = os.path.join(BASE_DIR,'static_file')
执行命令进行收集静态文件:python manage.py collectstatic
47.95.198.0进行访问
11.配置nginx.conf
配置nginx.conf文件/etc/nginx/
server{
listen 80;
location /static {
alias /www/fresh/static_file;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
}
重启nginx命令:nginx –s reload
12.分布式建立
添加多个分布式
mkdir fresh1 mkdir fresh2….
把项目拷贝到分布式中
cp -rf fresh/ fresh1/ cp -rf fresh/ fresh2/….
注意:本篇文章是个人总结,仅供参考。若出现其他问题,与写者无关,切勿用于商业获取福利!
如果总结有勿,或者交流与学习,请与写着联系!qq:1349176744