django+mysql+uwsgi+celery+redis

1.服务器环境

(img-OhuQQTsR-1601805814493)(系统版本.jpg)]

2.服务器安装python依赖环境
yum install gcc
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
3.服务器安装python
# 下载python3.8.6
wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz

# 解压
cd /home/python
tar -zxvf Python-3.8.6.tgz

# 指定安装目录/home/python/Python-3.8.6  需要先cd
./configure --prefix=/home/python/Python-3.8.6

# 安装python,支持多版本
# make 源代码包进行编译
# make install 安装    make uninstall 卸载
make &&  make install
4.创建python虚拟环境
cd /home/python/Python-3.8.6/bin
# 安装python包virtualenv
./pip3.8 install virtualenv
# 指定python版本,创建虚拟环境
./virtualenv -p /home/python/Python-3.8.6/bin/python3.8 test_虚拟环境名
# 切换虚拟环境 crm_test
cd /home/python/Python-3.8.6/bin/test_虚拟环境名/bin
# 激活虚拟环境
source activate
# 退出虚拟环境
deactivate
5.运行项目准备
# 安装启动数据库,上传代码创建建库
# MariaDB创建数据库
mysql -uroot -p
create database test charset='utf8mb4';
# 开启redis,查看配置文件/etc/redis/redis.conf 可开启daemonize no
redis-server
6.安装python包
pip install -r /home/python/crm_django/requirements.txt

# 升级python包
pip install pymsyql==2.0.*
或
pip install pymysql -U

# 升级pip
pip install --upgrade pip

# 离线安装python包源文件,指定安装目录--target
pip install *.whl --target=/home/user/...
6.1 pip install报错1:ModuleNotFoundError: No module named ‘_ctypes’在这里插入图片描述
sudo yum install libffi-devel
# 重新安装python(不会覆盖)
./configure --prefix=/home/python/Python-3.8.6
make&make install
7.运行项目

7.1 解压代码包

# CenterOS安装zip(root)
yum install -y unzip zip
# 解压代码包
unzip test_*.zip
7.2 迁移,建表
# cd到manage.py文件目录
python manage.py makemigrations
python manage.py migrate
7.3 本地运行(debug=False时 django不会加载静态文件)
7.3.1 命令行启动
# 更改配置文件setting.py参数(数据库参数,静态参数,debug=True等)
# cd 到manage.py本地目录
python manage.py runserver 127.0.0.1:8000
7.3.2 pycharm启动(初次右键Run ‘manage’)

在这里插入图片描述

7.4 migrate建表报错: errno: 150 “Foreign key constraint is incorrectly formed”)’
python manage.py makemigrations admin_应用名
python manage.py makemigrations
python manage.py migrate admin_应用名
python manage.py migrate

# 若提示某个表已存在,使用
python manage.py migrate --fake
python manage.py migrate
7.4.1 若报错django.db.utils.InternalError: (1824, “Failed to open the referenced table ‘tb_users’”)
# 迁移应用表报错,删除已经建好的表和迁移文件,执行
python manage.py makemigrations --empty 应用名
python manage.py makemigrations
# 若报错ValueError: Related model 'login.User' cannot be resolved
python manage.py migrate 应用名
python manage.py migrate
7.5 django版本兼容报错:SyntaxError: Generator expression must be parenthesized

在这里插入图片描述
在这里插入图片描述

8. 运行celery
8.1 启动celery 任务(ctrl + c结束停止)
# cd到celery任务目录celery_task
cd ~/celery_task
celery -A celery_task.main worker -l INFO -P eventlet
或
celery -A celery_task.main worker -l INFO -P eventlet  --logfile = celery.log --pidfile = celerypid
# -A  指向celery应用启动(主函数)main  
# worker:指要启动的任务 -l 指异常类型   eventlet: python处理绿色线程的包(windows使用)
# --logfile:指定log文件  --pidfile:指定进程pid存储文件

正常启动:
在这里插入图片描述
redis数据库未开启:后台开启redis数据库redis-server
在这里插入图片描述

8.2 后台运行celery任务(ctrl + c继续运行,注意celery项目目录)
setsid celery -A celery_task.main worker -l INFO
setsid celery -A celery_task.main beat -l INFO
# 后台守护进程开启celery
celery multi start w1 -A celery_task.main -l INFO --logfile = celery.log --pidfile = celerypid
# 后台执行(触发任务和定时任务一条命令)
nohub celery -A celery_task.main worker -l INFO -B >dev/null 2>&1
8.3 celery报错:django.core.cache.backends.base.InvalidCacheBackendError: Could not find backend ‘django_redis.cache.RedisCache’: cannot import name ‘six’
# celery django redis兼容问题
pip install django==2.*
9. nginx+mysql+redis
9.1 安装ngnix
# 安装依赖,防止报错:`/configure: error: C compiler cc is not found`,还有其他编译错误
sudo apt-get install gcc
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev

# 下载nginx源文件
wget http://nginx.org/download/nginx-1.18.0.tar.gz

# 任意目录解压源文件
tar -zxvf nginx-1.18.0.tar.gz
# root权限
install_path="/home/user/nginx_path"
./configure --prefix=${install_path} --sbin-path=${install_path}/nginx --conf-path=${install_path}/nginx.conf --pid-path=${install_path}/nginx.pid --with-http_ssl_module 

# --with-pcre=/usr/local/pcre-8.038 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.0.1t

# root权限 编码安装(默认安装路径:/usr/local/nginx/sbin)
sudo make && make install

# 设置全局
vi ~/.bashrc

# 添加
# alias nginx='/usr/local/nginx/sbin/nginx'
# 生效
source ~/.bashrc
9.2 安装mysql
9.3 安装redis
# 安装redis(以ubuntu系统有网直接安装为例,无网络需下载源码包解药安装)
sudo apt update
sudo apt-get install redis-server
# 默认安装目录/etc/redis/redis.conf
# 启动命令
/usr/bin/redis-server /etc/redis/redis.conf
# 使用redis-cli登录(-a 带密码)
redis-cli -h 127.0.0.1 -p 6379 -a 123456

redis配置后台启动

vi /etc/redis/redis.conf
# 修改daemonize no为
daemonize yes

redis配置密码

vi /etc/redis/redis.conf
# 修改requirepass foobared为(搜索foobared,并将其修改为要设置的密码)
requirepass  密码
10. uwsgi
10.1 配置uwsgi
[uwsgi]
# 使用Nginx连接时使用,Django程序所在服务器地址
;socket=127.0.0.1:8000
# 直接做web服务器使用,Django程序所在服务器地址
http=127.0.0.1:8000
# 项目目录,manage.py 同级目录
chdir=/home/python/crm_django/crm_management
# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=/home/python/crm_django/crm_management/crm_management/wsgi.py
# 进程数
processes=2
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=/home/python/crm_django/crm_management/uwsgi.pid
# 日志文件
daemonize=/home/python/crm_django/crm_management/uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/home/python/Python-3.8.6/bin/crm_test/
# 静态文件,先执行python manage.py collectstatic ,setting中指定静态文件STATIC_ROOT=os.path.join(BASE_DIR, 'static')
static-map=/static=/home/python/crm_django/crm_management/static
10.2 uwsgi启动项目
# 启动服务
uwsgi --ini uwsgi.ini
# 关闭uwsgi 若报错,执行ps -ef|grep uwsgi 将pid写进uwsgi.pid再执行
uwsgi --stop uwsgi.pid
# 重启uwsgi 若报错,执行ps -ef|grep uwsgi 将pid写进uwsgi.pid再执行,注意只有开启uwsgi才能重启
uwsgi --reload uwsgi.pid
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值