部署django项目

部署django项目

一,配置系统环境

1,yum -y install gcc gcc-c++ 编译的时候
2,yum -y install wget
3,yum -y install zlib zlib-devel openssl openssl-devel ncurses-  devel sqlite sqlite-devel bzip2-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
4,yum -y install epel-release
5,yum -y install libffi-devel 编译Python时候,如果缺少,会导致pip安装不成功
6,yum install psmisc 帮助管理/proc目录,fuser,killall,pstree等

二、源码安装Python3.7.4,安装Django,uwsgi,项目初始化

1,cd /opt 进入opt目录
2,使用wget命令下载压缩包 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz 
3,tar -zxvf Python-3.7.4.tgz
4,cd Python-3.7.4
5,./configure --prefix=/usr/local/python3
6,make
7,make install
8,创建软链接 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 如果建立错了,删除软连接 rm -rf /usr/bin/python3
   ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
9,给python3安装django pip3 install django 
  建立软连接 ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
10,出错:SQLite 3.8.3 or later is required (found 3.7.17)(执行python3 manage.py makemigtations) 
  参考:https://blog.csdn.net/qq_39969226/article/details/92218635 
  wget https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz
11,关闭防火墙: 查看防火墙状态firewall-cmd --state
  systemctl stop firewalld.service 停止防火墙 systemctl disable     firewalld.service 禁止firewall开机启动
12,从网站https://uwsgi-docs.readthedocs.io/en/latest/Download.html下载最新版uwsgi,下载Stable/LTS版本的源文件
13,tar -zxvf uwsgi压缩包文件
14,cd uwsgi解压过的目录
15,python3 setup.py install
16,ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi 建立软连接
17,安装完成后,使用uwsgi运行

三,部署虚拟环境(确认项目没有bug)

 1,pip freeze > djsngo-env1.txt   #把虚拟环境下的所有模块目录打包文件
 2,将项目上传到服务器,以"git"为例:
    git init   #把当前项目初始化为git仓库
    git remote add origin (远程仓库地址)   #将初始化的仓库与你创建的仓库进行关联
    git pull origin master   #初始化好的或者克隆仓库的目录,然后执行
    git add .  #将当前目录所有文件添加到git暂存区`
    git commit -m "my first commit" #提交并备注提交信息`
    git push origin master #将本地提交推送到远程仓库
    ```
    #在克隆过程中,如果仓库是一个私有仓库,将会要求用户输入 Gitee 的账号和密码
    git config --global user.name "你的名字或昵称"
    git config --global user.email "你的邮箱"
    #在新建仓库时,如果在 Gitee 平台仓库上已经存在 readme 或其他文件,在提交时可能会存在冲突,这时用户需要选择的是
    保留线上的文件或者舍弃线上的文件,如果您舍弃线上的文件,则在推送时选择强制推送,强制推送需要执行下面的命令(默认不推荐该行为
    ```
    git push origin master -f #删除线上的 readme 文件
    git pull origin master    #保留线上的 readme 文件
 3,安装vim:   #文本编辑器
    sudo apt install vim   
  """(有失误)
 4,安装 memcached:  #开源、高性能、分布式内存对象缓存系统
    yum install memcached   #安装memcached
    yum install telnet
    telnet 127.0.0.1 11211  #连接memcached服务:
  """

四,安装mysql数据库流程

  #https://blog.csdn.net/m0_51173023/article/details/109583452
  1,确保服务器系统处于最新状态
    yum -y update   # 更新系统
  2,下载MySql安装包
     rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
    或 rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
  3,安装mysql
     yum install -y mysql-server
     或 yum install mysql-community-server
  4,修改mysql默认字符集
     vi /etc/my.cnf
     在里面添加
     //在[mysqld]的下面添加服务端字符集
     character-set-server=utf8
     collation-server=utf8_general_ci

     //需要在最下方填写客户端字符集
     [client]
     default-character-set=utf8
  5,设置开机启动Mysql
     systemctl enable mysqld.service
     systemctl list-unit-files | grep mysqld   # 检查是否开机自动启动设置成功
     mysqld.service enabled    # 显示以下内容说明已经完成自动启动安装
  6,设置开启服务
     systemctl start mysqld.service
     或 service mysqld start
  7,查看MySql默认密码
     grep 'temporary password' /var/log/mysqld.log   # 在root@localhost: 后面的就是初始密码
  8,登陆MySql,输入用户名和密码
     mysql -uroot -p
  9,修改mysql登录密码
     # 设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW
     set global validate_password_policy=LOW;
     # 当前密码长度为 8 ,按照我们常用的设置为 6 位的密码。
     set global validate_password_length=6;
     # 设置mysql密码,只要满足六位的长度。
     alter user 'root'@'localhost' identified by '123456'; 
  10,授予远程连接权限
     //授权
     grant all privileges on *.* to 'root' @'%' identified by '密码';
     //刷新
     flush privileges;
  11,关闭Linux系统防火墙
     systemctl stop firewalld.service
原文地址:https://www.cnblogs.com/1314/p/14467987.html