当前位置:   article > 正文

Python---Django项目部署_python django 部署

python django 部署

一、连接服务器,安装nginx

  1. 搜索:yum search nginx
  2. 安装:yum install nginx
  3. 查看信息:yum info nginx
  4. 更新:yum update nginx
  5. 列出所有安装的包:yum list installed
  6. 搜索关于nginx的包:yum list installed | grep nginx
  7. 移除:yum erase -y nginx 或者 yum remove -y nginx
  8. # 命令
  9. 启动Nginx服务器:systemctl start nginx
  10. 停止Nginx服务器:systemctl stop nginx
  11. 重启Nginx服务器:systemctl restart nginx
  12. 查看Nginx的工作状态:systemctl status nginx

二、一般默认环境安装python2,需要安装python3

  1. cat /etc/redhat-release #查看操作系统具体型号
  2. whereis python #查看安装位置,显示python2的安装位置

1、安装python3

        Python Source Releases | Python.orgThe official home of the Python Programming Languageicon-default.png?t=N7T8https://www.python.org/downloads/source/        下载对应版本的tgz包,上传到服务器,解压

       2、 也可以直接下载(速度较慢)

  1. cd /usr/local #下载到本地文件夹
  2. wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz #命令下载
  1. 解压缩和解归档
  2. xz -d Python-3.7.7.tar.xz
  3. tar -xf Python-3.7.7.tar
  4. cd Pythin-3.7.7

3、安装编译环境

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc make

4、编译安装

        执行cd Python-3.7.7进入解压后的Python-3.7.7目录下,依次执行如下三个命令:

  1. ./configure --prefix=/usr/local/python37
  2. make
  3. make install

5、创建软连接

  1. ln -s /usr/local/python37/bin/python3.7 /usr/bin/python3
  2. ln -s /usr/local/python37/bin/pip3.7 /usr/bin/pip3

        此时已经可以python3进入python3环境

6、配置环境变量,可以使用pip3

        执行 vi ~/.bash_profile,添加如下设置

  1. export PYTHON_HOME=/root/training/Python-3.7.7
  2. export PATH=$PYTHON_HOME/bin:$PATH

        执行source ~/.bash_profile命令使配置生效,此时已经可以使用pip3

三、安装数据库

Mysql

1、安装Mysql

  1. # 官网下载
  2. 去mysql官网找到下载地址 https://dev.mysql.com/downloads/mysql/
  3. # 命令下载
  4. wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
  5. wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.29-1.el8.x86_64.rpm-bundle.tar
  6. # 安装
  7. mkdir mysql
  8. 解除归档和放置指定文件夹:tar -xf mysql.... -C mysql
  9. yum list installed | grep mariadb
  10. 如果有mariadb系列的包:
  11. yum erase -y 包名
  12. 例: yum erase -y mariadb-libs

2、安装及可能的报错

  1. # 用rpm装mysql: -i下载 -v可视化安装过程 -h检查哈希码
  2. rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
  3. rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm 这个是底层依赖库文件
  4. rpm -ivh mysql-community-libs-compat-5.7.30-1.el7.x86_64.rpm 这个是兼容性的包
  5. 这一步如出现以下错误 缺少openssl,执行 dnf install compat-openssl10 即可
  6. 错误:依赖检测失败:
  7. libcrypto.so.10()(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要
  8. libcrypto.so.10(libcrypto.so.10)(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要
  9. libssl.so.10()(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要
  10. libssl.so.10(libssl.so.10)(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要
  11. rpm -ivh mysql-community-devel-5.7.30-1.el7.x86_64.rpm 这个是开发者的库
  12. rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm 这是mysql的客户端程序
  13. rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm 这是mysql服务端的库
  14. (这步可能报错... 报什么错,补什么包
  15. 例如:yum install -y libaio
  16. 错误:依赖检测失败:
  17. perl(Getopt::Long) 被 mysql-community-server-5.7.31-1.el7.x86_64 需要
  18. 补: yum install perl
  19. 错误:依赖检测失败
  20. libnuma.so.1()(64bit) 缺少这个包
  21. 补: yum -y install numactl

3、安装成功启动

systemctl start mysqld (mysql默认使用TCP/3306端口)

4、进行数据库配置,使其可以远程连接

  1. # 查看mysqld的登陆密码:
  2. cat /var/log/mysqld.log | grep password
  3. 在host冒号后面
  4. # 登录
  5. mysql -u root -p
  6. password:刚才复制的那段
  7. # 修改密码
  8. alter user 'root'@'localhost'identified by '新密码'; (大写字母,小写字母,字符,数字组合)
  9. # 修改账号权限:
  10. use mysql;
  11. update user set host='%' where user='root';
  12. # 关闭密码强度验证
  13. find / -name my.cnf 搜索mysql配置文件
  14. vi /etc/my.cnf
  15. 在文件末尾添加以下内容:
  16. plugin-load=validate_password.so
  17. validate-password=OFF
  18. 保存退出
  19. 重启(systemctl start mysqld)

Redis

1、安装Redis

  1. 在windows上进去redis中文网,<http://www.redis.cn/>
  2. 复制下载地址
  3. wget http://download.redis.io/releases/redis-5.0.5.tar.gz
  4. 下载完成解gz压缩 解归档tar
  5. tar -zxf redis-5.0.5.tar.gz
  6. cd redis-5.0.5
  7. make && make install

2、启动Redis

  1. # 带密码启动
  2. redis-server --port 54321 --requirepass 密码 >> redis.log &
  3. # 启动
  4. redis-server (占用交互式环境,前台执行)
  5. redis-server &(在后台运行)
  6. jobs 可以看到后台任务
  7. fg %编号 拿回前台执行
  8. redis-server > chenedis.log & 输出日志到这个log文档中,后台运行
  9. pikll 带有redis名字的进程全部杀掉

3、Redis命令

  1. redis-cli 如果是本机,数据库没有密码直接回车就好
  2. ping 检查服务器是否连接成功 返回PONG
  3. set 键 值 保存数据
  4. get 键 取出数据
  5. del 键 删除键
  6. set 键 值 ex 秒(时间) 存活周期
  7. ttl 键 检查剩余存活时间
  8. expire 键 秒(时间) 添加存活周期
  9. keys* 检查所有键值对
  10. keys u* 检查u开头的键值对
  11. dbsize 检查键值对数量

四、配置项目目录

1、将项目上传到服务器

2、在项目目录下生成项目环境(最好放在主目录平级或外面)

python3 -m venv venv

3、激活环境

source venv/bin/activate

4、安装依赖

  1. pip3 freeze > /root/project/cc/req.txt #导出项目依赖文件
  2. pip3 install -r req.txt -i https://pypi.doubanio.com/simple #通过依赖文件安装项目依赖包

5、安装启动项目的代理(方式1)

  1. pip install gunicorn
  2. pip install gevent -i https://pypi.doubanio.com/simple
  3. vim gun_conf.py #创建配置文件
  4. #内容:
  5. bind = '0.0.0.0:80'
  6. workers = 1
  7. backlog = 512 # 服务器中在pending状态的最大连接数,即client处于waiting的数目。超过这个数目, client连接会得到一个error 建议取值64-2048
  8. worker_class = 'gevent'
  9. timeout = 30
  10. limit_request_line = 0 # http request line最大字节数。值范围0-81900表示无限制。
  11. limit_request_field = 32768 # http request中 header字段数的最大值。缺省为100,最大32768
  12. limit_request_field_size = 0 # http request header字段最大字节数。0表示无限制。
  13. reload = True

6、启动项目

  1. gunicorn cc.wsgi:application cc(项目名)
  2. gunicorn -c gun_conf.py cc.wsgi:application

7、django3以上启动项目(方式二)

  1. pip install daphne -i https://pypi.doubanio.com/simple
  2. # 启动
  3. daphne -b 0.0.0.0 -p 80 cc.asgi:application

8、启动3(方式三)

  1. pip install hypercorn
  2. # 启动:
  3. hypercorn 项目名称.asgi:application

9、安装pm2管理后台服务

  1. 1.在 root 目录下,下载Node.js安装包
  2. wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz
  3. 2.解压文件
  4. tar xvf node-v14.15.1-linux-x64.tar.xz
  5. 3.创建软链接,以便可以在任意目录下使用 node 和 npm 命令(类似在windows上配置全局环境变量)
  6. ln -s /root/node-v14.15.1-linux-x64/bin/node /usr/local/bin/node
  7. ln -s /root/node-v14.15.1-linux-x64/bin/npm /usr/local/bin/npm
  8. # 软链接(类似windows下的快捷方式) ln -s 原文件名 链接文件名
  9. 4. 查看版本(是否安装成功)
  10. node -v
  11. npm -v
  12. 5. 安装 cnpm 并创建软链接,至此安装成功!(可选)
  13. npm install -g cnpm --registry=https://registry.npm.taobao.org
  14. ln -s /root/node-v14.15.1-linux-x64/bin/cnpm /usr/local/bin/cnpm
  15. # 配置淘宝镜像(方便我们用超音速的速度去下载这个小小的包)
  16. npm config set registry https://registry.npm.taobao.org
  17. 6. 安装pm2
  18. npm install -g pm2
  19. 7. 创建软链接
  20. ln -s /root/node-v14.15.1-linux-x64/bin/pm2 /usr/local/bin/pm2
  21. 8. 常用命令
  22. pm2 list #查看进程
  23. pm2 stop/reload/restart/delete all #停止/重载/重启/删除 所有进程
  24. pm2 stop/reload/restart/delete 0 #停止/重载/重启/删除 pm2进程列表中进程为0的进程
  25. pm2 logs [--raw] #显示所有进程的日志
  26. pm2 flush #清空所有日志文件
  27. pm2 reloadLogs #重载所有日志

10、在项目目录下新建启动文件

  1. vim start.sh
  2. # 内容
  3. source venv/bin/activate
  4. daphne -b 0.0.0.0 -p 80 cc.asgi:application

pm2 start start.sh  

pm2 list

11、docker 部署

  1. 1.重新生成一个镜像(生成过程要出docker):
  2. docker commit id name
  3. # id:做过更改容器的id
  4. # name:随意命名
  5. # 例如: docker commit f828 tom
  6. # 生成完可以运行 docker images 查看
  7. 2.保存
  8. docker save -o 文件名 镜像名
  9. # 例如 docker save -o ~/mydocker.tar tom
  10. # -o是--output的简写。
  11. 3.加载
  12. docker load -i 文件名 镜像名
  13. # 例如 docker load -i mydocker.tar
  14. # -i 是 --input 的简写
  15. # docker images 就可以查看是否成功啦

启动docker,启动项目

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/912346
推荐阅读
相关标签
  

闽ICP备14008679号