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.安装uwsginginx

进入虚拟环境安装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

原文地址:https://www.cnblogs.com/quietly-elegant/p/10257095.html