1. 发布码到 GitHub

本地源码发布前的初始化配置

pass

本地源码发布到 GitHub

git init
git add .
# git status 
git commit -m "项目初始化"
git branch -M main
git remote add origin https://github.com/xxx.git
git push -u origin main

2. 配置主机-Django项目部署阿里云-Centos

发布之前,要修改配置信息
哪些呢?
修改 settings 【Debug,Alloweb_host,DB】

python 运行环境依赖

2.1. MySQL 的安装

# 1. 查看系统是否安装mysql 
rpm -qa | grep mysql 
# 2. 安装wget工具
yum -y install wget
# 3. 使用wget下载依赖列表使用yum安装
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 
# 安装    mysql:
yum -y install mysql57-community-release-el7-10.noarch.rpm 
yum -y install mysql-community-server
#  安装提示报错
The GPG keys listed for the "MySQL 5.7 Community Server" repository are 
already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository. 
# 原因官方    MySQL 存储库的    GPG 密钥过期,无法安装或更新    MySQL 包。
# 解决办法执行如下命令
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 
# 重新执行
yum -y install mysql-community-server 
# 4. 查看mysql运行状态
查看服务状态systemctl status mysqld.service
启动服务systemctl start mysqld.service
设置服务自启动systemctl enable mysqld.service 
查看服务是否自启动systemctl is-enable mysqld.service
# 5. 通过端口确认mysql运行 
netstat -ntlp | grep mysql 
# 6. 使用初始密码登陆,修改密码
grep "password" /var/log/mysqld.log
alter user 'root'@'localhost' IDENTIFIED by '123.com'# 7. 远程管理
# 配置远程连接权限
update user set host='%' where host='localhost' and user='root'; 
# 确认防火墙状态
systemctl status firewalld.service

2.2 Redis数据库安装

2.2.1 下载并安装Redis

# 新建redis文件夹
cd /usr 
mkdir redis
cd redis
# 下载
wget http://download.redis.io/releases/redis-4.0.6.tar.gz 
# 解压
tar -zxvf redis-4.0.6.tar.gz 
# 安装gcc依赖
yum install gcc 
# 进入目录
cd redis-4.0.6 
# 进行编译
make
# 进入目录运行
cd src
#执行make install 
make install
# 运行redis
redis-server

2.2.2 配置Redis

2.2.2.1 以后台进程方式启动Redis
# 新建目录并复制redis配置文件 
mkdir -p /etc/redis
cp  /usr/redis/redis-4.0.6/redis.conf /etc/redis/redis_6379.conf 
# ===修改redis.conf (136行)==
daemonize no
#修改
daemonize yes
# 指定redis.conf文件启动
/usr/redis/redis-4.0.6/src/redis-server /etc/redis/redis_6379.conf
# 查看进程
ps -aux | grep redis
# 将redis启动脚本复制一份到Init.d目录下
cp /usr/redis/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd 
# 设置为redisd开机自启动
chkconfig redisd on
# 报错:service redisd does not support chkconfig 
# 修改redisd
vim /etc/init.d/redisd 
# 添加两行
# chkconfig:2345 90 10
# description:Redis is a persistent key-value database 
# 保存运行
chkconfig redisd on
# 此时仍然报错:因为标准自启动调用6379.conf , 我们重命名的为redis_6379.conf 
error, can't open config file '/etc/redis/6379.conf'
# 继续vim 修改
vim /etc/init.d/redisd 
# 修改为:
CONF="/etc/redis/redis_${REDISPORT}.conf" 
# 继续运行
chkconfig redisd on
# 显示成功,目前可以使用service redisd start 启动服务    ,可以使用service redisd stop 
停止服务,
# 可以使用service redisd restart 重启服务 
# 可以通过    ps -aux | grep redis查看是否运行
2.2.2.2 Redis 客户端的使用

在redis中自带一个客户端redis-cli可以通过这个客户测试对redis服务的连接

# 使用    redis-cli
[root@centos2 ~]# redis-cli
127.0.0.1:6379>
# 存储一个key-value值: keyname value:steven 过期时间:10s
127.0.0.1:6379> set name steven -ex 10 
# 取出key=name的值
127.0.0.1:6379> get name 
"steven"
# 超过过期时间10s再去取
127.0.0.1:6379> get name 
(nil)
2.2.2.3 设置对外服务器地址

默认情况下,redis服务器是以127.0.0.1 :6379对外提供服务, 意味着其他的计算机无法连接redis, 需
修改redis对外服务的IP地址, 具体如下

# 修改    redis配置文件
vim /etc/redis/redis_6379.conf 
# 修改服务地址为:0.0.0.0  (69行) 
bind 0.0.0.0
# 重启服务后,使用redis-cli连接
[root@centos2 ~]# redis-cli -h 192.168.182.20 -p 6379
2.2.2.4 设置连接的密码

默认情况下,redis连接不需要密码,如果需要设置密码,有两种方式

1. 修改配置文件
2. 使用redis-cli客户端设置

方法01:修改配置文件

# 修改    redis配置文件
vim /etc/redis/redis_6379.conf 
# 启用密码         (500行)
requirepass 1234.Com
# 重启服务后,使用redis-cli连接
[root@centos2 ~]# redis-cli -h 192.168.182.20 -p 6379 -a 1234.Com

方法02: 使用redis-cli客户端设置

192.168.182.20:6379> config set requirepass ZXCzxc123

可以用redis-cli查看设置的密码:

192.168.182.20:6379> config get requirepass
1) "requirepass"
2) "ZXCzxc123"

3. 基础环境准备

# 更新所有的软件包 
yum update -y
# 安装Python源文件编译环境
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel 
sqlite-devel libffi-devel libxml* libssl-dev

4. 下载Python的源文件编译和安装

# 在centos新建目录
mkdir /usr/local/python3.7.3 
# 进入目录
cd /usr/local/python3.7.3 
# 使用wget下载Python
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz 
# 解压缩
tar -zxvf Python-3.7.3.tgz 
# 进入目录
cd Python-3.7.3
# 新建一个安装目录
mkdir /usr/local/python3
# 编译前的configure设置         -- 指定路径
./configure --prefix=/usr/local/python3 
# 编译
make
# 安装
make install
# 可能遇到的坑: ModuleNotFoundError: No module named '_ctypes'
# sudo yum install libffi-devel -y
# make install

# 确认安装是否成功!
cd /usr/local/python3/bin 
# 测试python3是否能运行
./python3
# 测试pip3是否能运行
./pip3
# 为Python3和pip3创建软连接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3 
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

5. pip的完善

# 更改pip3的下载源 
cd ~
# 新建一个.pip目录 
mkdir .pip
# 进入.pip目录 
cd .pip
# 新建一个pip配置文件 
# touch pip.conf
vim pip.conf
# 添加配置文件内容
[global]
index-url=http://pypi.douban.com/simple 
trusted-host = pypi.douban.com
# 升级pip3
pip3 install -upgrade pip

6. 准备虚拟环境

目前项目部署在/home/mysite的目录中, 在此目录中创建env目录, 把虚拟环境新建的env目录下:

cd ~
mkdir -p  /home/mysite/
cd /home/mysite/
# =========== 步骤01:安装virtualenv包======== 
# 安装
pip3 install virtualenv
# 创建virtualenv的软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv 
# =========== 步骤02:准备虚拟环境的目录    ========
# 新建目录
mkdir -p /home/mysite/env 
# 进入目录
cd /home/mysite/env
# =========== 步骤03:创建虚拟环境    ======== 
# 创建python的虚拟环境,名称为:pyweb 
virtualenv --python=/usr/bin/python3 pyweb
# ===========步骤04:进入激活虚拟环境    ======== 
# 进入
cd pyweb/bin 
# 激活虚拟环境 
source activate 
# 退出虚拟环境
deactivate

虚拟环境部署方法很多,比如还有 poetry等,上面介绍方法部署起来是最简单的、最稳定的。
实现效果图
在这里插入图片描述
创建数据库
在这里插入图片描述
在这里插入图片描述

7. 打包代码上传

# 1. 在开发的环境中导出当前项目的依赖包到requirements.txt
pip freeze > requirements.txt
# 2. 上传码到centos中    -- Git 
git init
# 添加本地仓库远程仓库关联
git remote add origin https://gitee.com/xxx.git 
# 第一次,用远程初始化本地(把两个仓库合并)
git pull origin master --allow-unrelated-histories 
# 把本地仓库推到gitee
git push origin master
# 3. 在centos中,进入/home/mysite目录中 
cd /home/mysite
# 4. 使用git clone下载代码
git clone  https://gitee.com/xxx.git 

8. 准备项目的运行环境

# 先进入虚拟环境    -- pyweb
cd /home/mysite/env/pyweb/bin 
source activate
# 进入项目的目录-- 示例项目称为detectionproject 
cd /home/mysite/detectionproject
# 按照requirements.txt准备运行环境 
pip install -r requirements.txt 
# 安装uwsgi
pip3 install uwsgi
# 为uwsgi建立软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
# python manage.py runserver 阿里内网ip:80
# 浏览器 公网ip:80/user/login

9. 创建uwsgi配置文件

# 在虚拟环境中,进入项目根目录
cd /home/mysite/detectionproject
# 新建和项目同名的xml文件
touch detectionproject.xml 
# 编辑xml文件
vi detectionproject.xml 
# 写入如下内容:
<uwsgi>    
  <socket>127.0.0.1:9999</socket><!-- 内部端口自定义    -->
  <chdir>/home/mysite/detectionproject/</chdir><!-- 项目路径    -->            
  <module>detectionproject.wsgi</module>
  <processes>4</processes> <!-- 进程数    -->    
  <daemonize>uwsgi.log</daemonize><!-- 日志文件    --> 
</uwsgi>
# 保存:ESC --> :wq

10. 安装Nginx

通过yum来安装

# =======添加nginx的yum源    ======== 
# 1. 创建repo文件
touch /etc/yum.repos.d/nginx.repo 
# 2. 编辑nginx.repo
vi /etc/yum.repos.d/nginx.repo 
# 3. 复制内容
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0

enabled=1
# ============ 安装nginx ====== 
yum install -y nginx
# 安装后的目录
# config: /etc/nginx/nginx.conf 安装目录 
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid 
# 日志文件var/log/nginx
# ============启动nginx==== 
systemctl start nginx
systemctl enable nginx

10.1 配置Nginx

#=========== 配置Nginx ============= 
# 修改账号
vi /etc/nginx/nginx.conf 
# 修改为root启动
user root;
# 修改网站配配置 
vi /etc/nginx/
....
server {
   listen       80; # 对外的80端口
   server_name  192.168.182.200;  # 服务器地址 
   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main; 
   location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:9999;
          uwsgi_param UWSGI_SCRIPT detectionproject.wsgi;
          uwsgi_param UWSGI_CHDIR /home/mysite/detectionproject;#项目路径 
 }
   location /static/ {
   alias /home/mysite/detectionproject/apps/static/; 
 }
   ..... 
}

10.2 重启网站

//==================== 重新加载网站    ==================== 
1. 进入Python运行的虚拟环境
cd /home/mysite/env/pyweb/bin
source activate
2. 进入网站根目录
cd /home/mysite/DetectionProject
3. 绑定uwsgi的配置文件
uwsgi -x DetectionProject.xml
4. 重加载nginx
cd /usr/local/nginx/sbin/ 
./nginx -s reload
如果重启nginx出现错误如下命令解决
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

原文地址:https://blog.csdn.net/YJG7D314/article/details/128893214

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_38420.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注