人工智能 | 计算机视觉 | 深度学习

0%

Ubuntu18.04部署django-sspanel

Ubuntu18.04部署django-sspanel

更新系统

1
2
apt-get update
apt-get upgrade

安装mysql和ngnix

1
2
apt-get install mysql-client mysql-server
apt-get install nginx

安装pyenv

  • 安装依赖包
    1
    2
    3
    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
    libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
    xz-utils tk-dev libffi-dev liblzma-dev libedit-dev
  • 一键安装
    1
    curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
  • 修改配置文件:~/.bashrc。将以下内容添加到最后。
    1
    2
    3
    export PATH="/root/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
  • 使配置生效。
    1
    2
    # 使自己的profile生效
    source ~/.bashrc
  • 使用pyenv安装python3
    1
    pyenv install 3.7.5
  • 创建Django-sspanel 运行的虚拟环境
    1
    pyenv virtualenv 3.7.5 venv-sspanel

Clone项目并安装第三方库

  • 创建并切换目录:/home/www/
    1
    2
    mkdir /home/www
    cd /home/www/
  • clone 项目到本地。注意:dev为最新分支。
    1
    2
    3
    git clone -b dev https://github.com/algoboy101/django-sspanel.git
    cd /home/www/django-sspanel
    git branch
  • 将项目文件夹的环境设置为 virtualenv
    1
    pyenv local venv-sspanel
  • 安装第三方包
    1
    2
    apt-get install libmysqlclient-dev
    pip install mysqlclient
  • 修改requirements.txt文件:Django>=2.2.1 -> Django==2.2.1。并安装依赖。
    1
    pip install -r requirements.txt

设置mysql并创建数据库

设置编码

1
2
3
4
5
6
character-set-server=utf8
collation-server=utf8_general_ci
init_connect='SET NAMES utf8'

[client]
default-character-set=utf8
  • 重启mysql,生效。
    1
    service mysql restart

其它设置

创建数据库

  • 参考 MySQL删除数据库(DROP DATABASE语句),创建数据库:sspanel,用于django-sspanel。
    1
    2
    3
    4
    5
    6
    # 创建命令
    CREATE DATABASE sspanel;
    # 删除命令
    # DROP DATABASE sspanel;
    # 查看数据库列表,看到sspanel数据库
    show databases;

配置django-sspanel

  • 配置文件目录:/home/www/django-sspanel/configs/
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # 进入配置文件夹
    cd configs

    # 配置文件结构
    ➜ tree
    .
    ├── __init__.py
    ├── default
    │ ├── __init__.py
    │ ├── cron.py # 设置计划任务
    │ ├── db.py # 设置数据库
    │ ├── email.py # 设置邮箱
    │ └── sites.py # 设置杂七杂八的东西
    ├── development.py
    ├── mysqld
    │ └── mysqld_charset.cnf
    ├── nginx
    │ └── nginx.example.conf
    └── production.py # 设置数据库密码

    **每一项配置文件都要打开进去自己设置~**

    修改配置文件中数据库相关的用户名和密码

  • 修改 /home/www/django-sspanel/configs/default/db.py

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # mysql 设置
    DATABASES = {
    "default": {
    "ENGINE": "django_prometheus.db.backends.mysql",
    "NAME": "sspanel",
    "USER": "django", # 用户名 (和前面对应)
    "PASSWORD": "django", # 密码 (和前面对应)
    "HOST": "127.0.0.1",
    "PORT": "3306",
    "OPTIONS": {
    "autocommit": True,
    "init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
    "charset": "utf8mb4",
    },
    }
    }
  • 修改 /home/www/django-sspanel/configs/production.py

    1
    2
    3
    4
    5
    6
    7
    DATABASES["default"].update(
    {
    "PASSWORD": os.getenv("MYSQL_PASSWORD", "django"), # 密码
    "HOST": os.getenv("MYSQL_HOST", "127.0.0.1"),
    "USER": os.getenv("MYSQL_USER", "django"), # 用户名
    }
    )

配置ngnix

  • vim /etc/nginx/conf.d/vhost.conf,填入以下内容。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    server {
    listen 80;
    server_name css.xuezhisd.top; # 项目域名
    root /home/www/django-sspanel; # 项目的目录

    location /media {
    alias /home/www/django-sspanel/media; # your Django project's media files - amend as required
    }

    location /static
    {
    alias /home/www/django-sspanel/static; #静态文件地址,js/css
    expires 12h;
    }

    location /
    {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8080;
    }
    }
  • 重启。
    1
    service nginx restart

测试

测试项目是否正常运行。

1
2
3
4
5
6
    $  cd .. # 切回项目根目录
$ python manage.py migrate # 通过djang ORM 建立所需数据库表
$ python manage.py runserver # 测试项目是否运行
$ python manage.py collectstatic # 收集静态文件
创建管理员账号
$ python manage.py createsuperuser # 按照提示创建即可

启动并访问

  • 执行以下命令,启动。
    1
    uwsgi uwsgi.ini
  • 访问http://ip/,即可看到网页。

设置crontab任务

` python manage.py crontab add

参考: