文章目录

  • ​​1 mysql版本太低的bug​​
  • ​​安装一些需要的应用​​
  • ​​<1> 退出虚拟环境​​
  • ​​<2> supervisor​​
  • ​​<3> 在虚拟环境安装 gunicorn​​
  • ​​<4> 在项目根目录下创建一个 gunicorn_start.sh 文件​​
  • ​​<5>修改权限​​
  • ​​<6> 运行​​
  • ​​<7> 3. 配置 Nginx​​
  • ​​<8> 配置Supervisor​​
  • ​​<10> 关于后台静态样式丢失问题​​
  • ​​else​​
  • ​​参考​​

1 mysql版本太低的bug

<1> 宝塔的mysql版本要是8.0 要高一点的,不然有些已经不用了

Django网站开发下_虚拟环境

<2> mysql的权限设置为所有人

Django网站开发下_虚拟环境_02

<3> 在vscode里面进行数据库同步

(1)环境激活

Django网站开发下_mysql_03

(2)进入mysql里面查看表

Django网站开发下_ico_04

(3)查看数据库

Django网站开发下_虚拟环境_05

(4) 查看表

Django网站开发下_mysql_06

(5)应用同步

Django网站开发下_mysql_07

这里是因为已经做了,所以 NO migrations to apply

安装一些需要的应用

<1> 退出虚拟环境

deactivate

Django网站开发下_mysql_08

<2> supervisor

sudo apt install supervisor -y

Django网站开发下_虚拟环境_09

<3> 在虚拟环境安装 gunicorn

要在有env的虚拟状态下安装

pip install gunicorn

Django网站开发下_mysql_10

我这是因为我已经装过了

<4> 在项目根目录下创建一个 gunicorn_start.sh 文件

#!/bin/bash

NAME="MyBlog"
DJANGODIR=/home/tango/Desktop/DjangoDev/www/MyBlog #Django project directory
USER=tango # the user to run as
GROUP=tango # the group to run as
NUM_WORKERS=1 # how many worker processes should Gunicorn spawn
DJANGO_SETTINGS_MODULE=config.settings # which settings file should Django use
DJANGO_WSGI_MODULE=config.wsgi # WSGI module name

echo "Starting $NAME as `whoami`"

# Activate the virtual environment
cd $DJANGODIR
source /home/tango/Desktop/DjangoDev/env/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec /home/tango/Desktop/DjangoDev/env/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--log-level=debug \
--log-file=-

Django网站开发下_ico_11

USER=server # the user to run as GROUP=server # the group to run as

这里的用户名要改为自己的比如:tango

更改成当前路径

Django网站开发下_mysql_12

Django网站开发下_mysql_13

<5>修改权限

chmod +x gunicorn_start.sh

Django网站开发下_mysql_14

<6> 运行

./gunicorn_start.sh

<7> 3. 配置 Nginx

location /static/ {
alias /home/tango/Desktop/DjangoDev/www/MyBlog/static/;
expires max;
access_log off;
log_not_found off;

}

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:8000;
break;
}


}

<8> 配置Supervisor

sudo vim /etc/supervisor/conf.d/myblog.conf

填入下面内容

[program:myblog]
command = *******/gunicorn_start.sh
user = server
autostart=true
autorestart=true

redirect_stderr = true
stdout_logfile = /var/log/myblog.log
stderr_logfile=/var/log/myblog.err

user = server
同样也要修改成为自己的用户名

最后要更新一下下

sudo supervisorctl update
sudo supervisorctl reload

<10> 关于后台静态样式丢失问题

修改 settings.py

STATIC_ROOT = os.path.join(BASE_DIR, "static")

Django网站开发下_ico_15

并在项目目录下新建一个 static 的文件夹

运行如下命令进行静态文件收集

python manage.py collectstatic

else

1 进去网页

python manage.py runserver 0.0.0.0:8000

Django网站开发下_mysql_16

2 杀死进程


Django网站开发下_ico_17