目录
1. 发布源码到 GitHub
本地源码发布前的初始化配置
本地源码发布到 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】
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值: key:name 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客户端设置
# 修改 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
192.168.182.20:6379> config set requirepass ZXCzxc123
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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。