Python---Django项目部署

一、连接服务器,安装nginx

搜索:yum search nginx

安装:yum install nginx

查看信息:yum info nginx

更新:yum update nginx

列出所有安装的包:yum list installed

搜索关于nginx的包:yum list installed | grep nginx

移除:yum erase -y nginx  或者 yum remove -y nginx

# 命令
启动Nginx服务器:systemctl start nginx
停止Nginx服务器:systemctl stop nginx
重启Nginx服务器:systemctl restart nginx
查看Nginx的工作状态:systemctl status nginx

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

cat /etc/redhat-release    #查看操作系统具体型号

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、 也可以直接下载(速度较慢)

cd /usr/local #下载到本地文件夹

wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz #命令下载

解压缩和解归档
xz -d Python-3.7.7.tar.xz
tar -xf Python-3.7.7.tar

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目录下,依次执行如下三个命令:

./configure --prefix=/usr/local/python37

make

make install

5、创建软连接

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

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

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

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

export PYTHON_HOME=/root/training/Python-3.7.7

export PATH=$PYTHON_HOME/bin:$PATH

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

三、安装数据库

Mysql

1、安装Mysql

# 官网下载
去mysql官网找到下载地址 https://dev.mysql.com/downloads/mysql/

# 命令下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.29-1.el8.x86_64.rpm-bundle.tar

# 安装
mkdir mysql

解除归档和放置指定文件夹:tar -xf mysql....  -C mysql

yum list installed | grep mariadb
如果有mariadb系列的包:
yum erase -y 包名 
例: yum erase -y mariadb-libs

2、安装及可能的报错

# 用rpm装mysql: -i下载 -v可视化安装过程 -h检查哈希码
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm 

rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm	              这个是底层依赖库文件



rpm -ivh  mysql-community-libs-compat-5.7.30-1.el7.x86_64.rpm	  这个是兼容性的包 

这一步如出现以下错误 缺少openssl,执行 dnf install compat-openssl10   即可
错误:依赖检测失败:
        libcrypto.so.10()(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要
        libcrypto.so.10(libcrypto.so.10)(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要
        libssl.so.10()(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要
        libssl.so.10(libssl.so.10)(64bit) 被 mysql-community-libs-compat-5.7.31-1.el7.x86_64 需要






rpm -ivh mysql-community-devel-5.7.30-1.el7.x86_64.rpm              这个是开发者的库

rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm 	          这是mysql的客户端程序




rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm            这是mysql服务端的库
(这步可能报错...  报什么错,补什么包
例如:yum  install -y libaio   

错误:依赖检测失败:
    perl(Getopt::Long) 被 mysql-community-server-5.7.31-1.el7.x86_64 需要
	补: yum install perl


错误:依赖检测失败
   libnuma.so.1()(64bit)   缺少这个包
   补: yum -y install numactl

3、安装成功启动

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

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

# 查看mysqld的登陆密码:
cat /var/log/mysqld.log | grep password
在host冒号后面

# 登录
mysql -u root -p
password:刚才复制的那段

# 修改密码
alter user 'root'@'localhost'identified by '新密码';	(大写字母,小写字母,字符,数字组合)

# 修改账号权限:
use mysql;
update user set host='%' where user='root';

# 关闭密码强度验证
find / -name my.cnf  搜索mysql配置文件
vi /etc/my.cnf
在文件末尾添加以下内容:
plugin-load=validate_password.so
validate-password=OFF
保存退出
重启(systemctl start mysqld)

Redis

1、安装Redis

在windows上进去redis中文网,

复制下载地址

wget  http://download.redis.io/releases/redis-5.0.5.tar.gz

下载完成解gz压缩 解归档tar

tar -zxf redis-5.0.5.tar.gz

cd redis-5.0.5

make && make install 

2、启动Redis

# 带密码启动
redis-server --port 54321 --requirepass 密码 >> redis.log & 

# 启动
redis-server  (占用交互式环境,前台执行)
redis-server &(在后台运行)
jobs 可以看到后台任务
fg %编号  拿回前台执行
redis-server > chenedis.log & 输出日志到这个log文档中,后台运行

pikll 带有redis名字的进程全部杀掉

3、Redis命令

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

四、配置项目目录

1、将项目上传到服务器

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

python3 -m venv venv

3、激活环境

source venv/bin/activate

4、安装依赖

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

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

pip install gunicorn
pip install gevent -i https://pypi.doubanio.com/simple
vim gun_conf.py  #创建配置文件
#内容:
bind = '0.0.0.0:80'
workers = 1

backlog = 512 # 服务器中在pending状态的最大连接数,即client处于waiting的数目。超过这个数目, client连接会得到一个error 建议取值64-2048

worker_class = 'gevent'

timeout = 30

limit_request_line = 0  # http request line最大字节数。值范围0-8190, 0表示无限制。
limit_request_field = 32768  # http request中 header字段数的最大值。缺省为100,最大32768。
limit_request_field_size = 0  # http request header字段最大字节数。0表示无限制。


reload = True

6、启动项目

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

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

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

8、启动3(方式三)

pip install hypercorn

# 启动:
hypercorn 项目名称.asgi:application

9、安装pm2管理后台服务

1.在 root 目录下,下载Node.js安装包
wget https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz


2.解压文件
tar xvf node-v14.15.1-linux-x64.tar.xz


3.创建软链接,以便可以在任意目录下使用 node 和 npm 命令(类似在windows上配置全局环境变量)
ln -s /root/node-v14.15.1-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v14.15.1-linux-x64/bin/npm /usr/local/bin/npm

# 软链接(类似windows下的快捷方式)  ln -s 原文件名 链接文件名


4. 查看版本(是否安装成功)
node -v
npm -v


5. 安装 cnpm 并创建软链接,至此安装成功!(可选)
npm install -g cnpm --registry=https://registry.npm.taobao.org
ln -s /root/node-v14.15.1-linux-x64/bin/cnpm /usr/local/bin/cnpm

# 配置淘宝镜像(方便我们用超音速的速度去下载这个小小的包)
npm config set registry https://registry.npm.taobao.org


6. 安装pm2
npm install -g pm2

7. 创建软链接
ln -s /root/node-v14.15.1-linux-x64/bin/pm2 /usr/local/bin/pm2

8. 常用命令
pm2 list #查看进程
pm2 stop/reload/restart/delete all #停止/重载/重启/删除 所有进程
pm2 stop/reload/restart/delete 0 #停止/重载/重启/删除 pm2进程列表中进程为0的进程
pm2 logs [--raw] #显示所有进程的日志
pm2 flush #清空所有日志文件
pm2 reloadLogs #重载所有日志

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

vim start.sh

# 内容
source venv/bin/activate
daphne -b 0.0.0.0 -p 80 cc.asgi:application

pm2 start start.sh  

pm2 list

11、docker 部署

1.重新生成一个镜像(生成过程要出docker):
docker commit id name
# id:做过更改容器的id
# name:随意命名
# 例如: docker commit f828 tom
# 生成完可以运行 docker images 查看

2.保存
docker save -o  文件名   镜像名
# 例如 docker save -o ~/mydocker.tar tom
# -o是--output的简写。

3.加载
docker load -i  文件名   镜像名
# 例如 docker load -i mydocker.tar
# -i 是 --input 的简写
# docker images 就可以查看是否成功啦

启动docker,启动项目

你可能感兴趣的:(python,开发语言)