1、安装mariadb5.5.68
提示:此版本太低,已废弃,看下面安装mariadb10.5 !!!
安装服务端:
yum install mariadb-server -y
1.1 报错看这里
报错:
解决办法:
编辑/etc/yum.repos.d 路径下的CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
清除yum缓存:
yum clean all
yum makecache
1.2 正常看这里
启动服务:
systemctl start mariadb
设置开机自启:
systemctl enable mariadb
设置root账号密码:
mysqladmin -u root password 123456
登录数据库:
mysql -uroot -p123456
1.3 这里的步骤可以忽略
查看有哪些数据库:
查看用户:
use mysql;
select Host,User from user;
删除不需要用户或密码就可以直接登录的用户:
delete from user where Host='localhost.localdomain';
delete from user where Host='localhost' and User='';
delete from user where Host='::1' and User='root';
1.4 继续
开启远程访问权限:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
exit;
关闭并禁用防火墙:
#查看防火墙状态:systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
2、安装mariadb10.5
2.1 卸载旧版本的mariadb(之前没安装就跳过)
systemctl stop mariadb #停止mariadb服务
rpm -qa | grep -i mariadb #查看已安装的mariadb版本:5.5.68
卸载旧版本:(根据上图卸载相应内容)
yum remove mariadb-server mariadb mariadb-libs mariadb-devel
2.2 添加mariadb官方仓库
django需要mariadb10.3+,此处选择10.5(长期支持版本)
vi /etc/yum.repos.d/CentOS-Base.repo
添加内容:
[mariadb]
name=MariaDB
baseurl=http://yum.mariadb.org/10.5/centos7-amd64
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
2.3 安装mariadb10.5.26
yum clean all #清理旧缓存
yum install -y MariaDB-server MariaDB-client
继续按1.2、1.4操作
3、安装python3.9.5
安装gcc,用于后续安装python时编译源码:
yum install gcc -y
安装python3相关依赖:
yum install zlib zlib-devel -y
yum install bzip2 bzip2-devel -y
yum install ncurses ncurses-devel -y
yum install readline readline-devel -y
yum install openssl openssl-devel -y
yum install xz lzma xz-devel -y
yum install sqlite sqlite-devel -y
yum install gdbm gdbm-devel -y
yum install tk tk-devel -y
yum install mysql-devel -y
yum install python-devel -y
yum install libffi-devel -y
cd /data/ #进到这个文件夹 没有就创建
#下载python,如果没有wget,先安装 yum install wget
#下载慢的可以直接去这下载:https://www.python.org/downloads/release/python-395/
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
解压:
tar -xvf Python-3.9.5.tgz
进入目录并编译安装:
cd Python-3.9.5/
./configure
make all
make install
测试:
python3 --version
配置源(腾讯源):
pip3.9 config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
4、创建虚拟环境
安装虚拟环境:
pip3.9 install virtualenv
创建虚拟环境目录和环境:
mkdir /envs
cd /envs
#gxl:虚拟环境名字
virtualenv /envs/gxl --python=python3.9
激活虚拟环境:
source /envs/gxl/bin/activate
4.1 安装库
上传requirements.txt,内容如下:
alibabacloud-gateway-spi==0.0.2
alibabacloud-openapi-util==0.2.2
alibabacloud-tea==0.3.9
alibabacloud-tea-openapi==0.3.11
alibabacloud-tea-util==0.3.13
alibabacloud-tea-xml==0.0.2
alibabacloud-vod20170321==3.2.0
asgiref==3.8.1
async-timeout==4.0.3
attrs==24.2.0
certifi==2024.8.30
cffi==1.17.1
charset-normalizer==3.3.2
cryptography==43.0.1
Django==4.0.9
frozenlist==1.4.1
idna==3.10
multidict==6.1.0
mysqlclient==2.1.1
pycparser==2.22
pycryptodome==3.20.0
pyOpenSSL==24.2.1
requests==2.32.3
sqlparse==0.5.1
typing_extensions==4.12.2
tzdata==2024.1
urllib3==1.24.3
yarl==1.11.1
pip install -r requirements.txt
4.2 安装django项目需要的库(可跳过此处)
pip install numpy==1.20.3
pip install openpyxl==3.0.9
pip install pillow==8.4.0
pip install scipy==1.7.1
pip install pandas==1.3.4
pip install flask==1.1.2
5、上传代码到centos(用xshell或者git)
6、配置、测试运行
配置django项目的settings.py里面的数据库
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "py01",
"USER": 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': 3306,
'OPTIONS':{
'init_command':"SET sql_mode='STRICT_TRANS_TABLES'",
'charset':'utf8mb4',
'use_unicode':True,
}
}
}
生成数据库py01的表:
提示:(此处可以不生成,直接在Navicat里运行SQL文件)
python manage.py makemigrations
python manage.py migrate
启动:
python manage.py runserver 0.0.0.0:80
浏览器访问:192.168.190.13(虚拟机ip)即可看到项目登录页面
若报错,则修改setting.py配置文件 :
# 修改ALLOWED_HOSTS = []
# 修改为本机ip,可以在客户端通过ip或域名访问
ALLOWED_HOSTS = ['192.168.190.13']
7、收集静态资源
setting.py配置文件 添加:
BASE_DIR = Path(__file__).resolve().parent.parent.parent
# 静态文件配置
STATIC_ROOT = BASE_DIR / 'allstatic'
python manage.py collectstatic
7.1 安装uwsgi,运行项目
source /envs/gxl/bin/activate #激活虚拟环境
pip install uwsgi
7.1.1 基于uwsgi运行项目
在/data/gh2路径下创建gh2_uwsgi.ini
[uwsgi]
socket=127.0.0.1:9000
chdir=/data/gh2/
wsgi-file=gh2/wsgi.py
processes=4
virtualenv=/envs/gxl/
在/data/gh2路径下执行:
/envs/gxl/bin/uwsgi --ini gh2_uwsgi.ini
#/envs/gxl/bin/uwsgi --ini gh2_uwsgi.ini & >/dev/null #uwsgi在后台一直运行
7.2 nginx配置、运行
使用nginx做反向代理、处理静态资源
yum install nginx -y
7.2.1 报错看这里(没有跳过)
#原因:nginx位于第三方的yum源里面,不在Centos官方源里面
#解决办法:
yum install epel-release
yum update
yum install nginx -y
7.2.2 继续
#修改nginx.conf配置文件:
# 路径:/etc/nginx/nginx.conf
把之前的文件改名为nginx.conf.bak
cd /etc/nginx/
mv nginx.conf nginx.conf.bak
接着复制一份nginx.conf.bak文件,改名为 nginx.conf,更改的地方如下:
upstream django{
server 127.0.0.1:9000;
}
server {
listen 80;
listen [::]:80;
location = /static {
alias /data/allstatic/;
}
location = / {
uwsgi_pass django;
include uwsgi_params;
}
}
启动nginx:
systemctl start nginx #启动
#如果重启:systemctl restart nginx
# systemctl status nginx # 查看nginx是否启动
# systemctl reload nginx
systemctl enable nginx #开机自启
启动uwsgi:
cd /data/gh2
/envs/gxl/bin/uwsgi --ini gh2_uwsgi.ini
此时浏览器输入centos主机ip,可以看到登录界面
7.2.3 报错看这里(没有跳过)
8、重启uwsgi脚本
脚本1、reboot.sh:
内容如下:
echo -e "\033[34m--------------------wsgi process--------------------\033[0m"
ps -ef|grep gh2_uwsgi.ini | grep -v grep
sleep 0.5
echo -e '\n-------------------going to close--------------------'
ps -ef |grep gh2_uwsgi.ini | grep -v grep | awk '{print $2}' | xargs kill -9
sleep 0.5
echo -e '\n----------check if the kill action is correct----------'
/envs/gxl/bin/uwsgi --ini gh2_uwsgi.ini & >/dev/null
echo -e "\033[42;1m--------------------started--------------------\033[0m"
sleep 1
ps -ef |grep gh2_uwsgi.ini | grep -v grep
脚本2、stop.sh
echo -e "\033[34m--------------------wsgi process--------------------\033[0m"
ps -ef |grep gh2_uwsgi.ini | grep -v grep
sleep 0.5
echo -e '\n-------------------going to close--------------------'
ps -ef |grep gh2_uwsgi.ini | grep -v grep | awk '{print $2}' | xargs kill -9
sleep 0.5
cd /data/gh2/shell #先创建shell文件,里面包含reboot.sh、stop.sh、gh2_uwsgi.ini
sh reboot.sh # 启动
sh stop.sh # 停止