欢迎光临
AK的小站-记录生活的点滴

新管理面板安装+设置+问题记录(后端接入失败作者github上的wiki也删除了此方法)

修改页面

前台页面刚打开:在/templates/base.html 和basehead.html 修改,adminbase.html是管理员后台页面。

上图中间那三个框框,在 /templates/sspanel/index.html 中修改

用户后台页面:在 /templates/sspanel/下修改

管理员后台页面:/templates/my_admin 下修改

更新系统

apt-get update
apt-get upgrade

安装

首先在面板中新建 一个网站,并且进入该网站的执行目录。如 cd /www/wwwroot/xxx.top

安装mysql和ngnix

apt-get install mysql-client
这里只安装这个数据库连接 即可,nginx和mysql用面板快速安装管理

安装pyenv

  • 安装依赖包
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
  • 一键安装 pyevn
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
  • 修改配置文件:~/.bashrc。(在root目录下,直接在面板中编辑授权755即可)将以下内容添加到最后。
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
  • 使配置生效。(每次断开都要执行一次才能进入 pyenv环境)
# 使自己的profile生效
source ~/.bashrc
  • 使用pyenv安装python3 (已成功安装的 Python环境是3.6.0,不安装3.7.5)
pyenv install 3.6.0
  • 创建Django-s sp anel 运行的虚拟环境
pyenv virtualenv 3.6.0 venv-s sp anel

Clone项目并安装第三方库

  • 切换目录:/www/wwwroot/xxx.top
cd /www/wwwroot/xxx.top
  • clone 项目到本地。注意:dev为最新分支。(现在正常使用的是clone 2020.11版的master)
 git clone -b master https://github.com/algoboy101/django-s sp anel.git
 cd django-s sp anel/ 将里面的所有文件 复制到 /www/wwwroot/xxx.top/目录内
 git branch
  • 进入/www/wwwroot/xxx.top/,将项目文件夹的环境设置为 virtualenv
pyenv local venv-s sp anel
  • 安装第三方包
apt-get install libmysqlclient-dev
pip install mysqlclient
  • 并安装依赖。
pip install -r requirements.txt 

创建数据库

在面板中 创建 一个用户 和 数据库,记住 用户名 数据库名和密码,稍后用到。

配置

  • 配置文件目录:/configs/
# 进入配置文件夹
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 # 设置数据库密码

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

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

  • 修改 /configs/default/db.py
# mysql 设置
import os

if os.getenv("DJANGO_ENV") != "ci":
    # mysql 设置
    DATABASES = {
        "default": {
            "ENGINE": "django_prometheus.db.backends.mysql",
            "NAME": "数据库名",
            "PASSWORD": os.getenv("MYSQL_PASSWORD", "密码"),
            "HOST": os.getenv("MYSQL_HOST", "127.0.0.1"),
            "USER": os.getenv("MYSQL_USER", "用户"),
            "OPTIONS": {
                "autocommit": True,
                "init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
                "charset": "utf8mb4",
            },
        }
    }
  • 修改 /configs/production.py
DEBUG = True
DATABASES["default"].update(
    {
        "PASSWORD": os.getenv("MYSQL_PASSWORD", ""), # 密码
        "HOST": os.getenv("MYSQL_HOST", "127.0.0.1"),
        "USER": os.getenv("MYSQL_USER", ""), # 用户名
    }
)

配置ngnix

在 面板 网站中 直接修改配置即可。注意:uwsgi_pass 127.0.0.1:8080;(监听端口,和uwsgi uwsgi.ini里的相同)端口号不能被占用,否则运行不了,并且防火墙要 开启这个 端口

server {
        listen 80;
        server_name css.xuezhisd.top; # 项目域名
        root  /www/wwwroot/xxx.top; # 项目的目录

        location /media  {
            alias /www/wwwroot/xxx.top/media;  # 这个没有的
        }

        location /static
        {
          alias  /www/wwwroot/xxx.top/static; #静态文件地址,js/css
          expires  12h;
        }

        location /
        {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:8080;# 这里注意!端口号不能被占用,否则运行不了
        }
}

下面是正常运行 并配置 了SSL 的 nginx 配置

server {
    listen 80 default_server;
    return 444;
}
server
    {
     	listen 80;
     	listen 443 ssl http2;
        server_name xxx.top;
        
        root  /www/wwwroot/xxx.top;
        
    if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END
    ssl_certificate    /www/server/panel/vhost/cert/xxx.top/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/xxx.top/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;
        
        #添加如下内容即可防止爬虫
        if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") 
        {
        return 403;
        }

        location /media  {
        alias /www/wwwroot/xxx.top/media;  # your Django project's media files - amend as required
        }

	location /static
        {
	alias  /www/wwwroot/xxx.top/static; #静态文件地址,js/css
        expires  12h;
        }

	location /
        {
	include uwsgi_params;
        uwsgi_pass 127.0.0.1:8001;
        }

        location = /favicon.ico {
        empty_gif;
        }

    }

测试

测试项目是否正常运行。

    $  cd .. # 切回项目根目录 /xxx.top
    $  python manage.py migrate # 通过djang ORM 建立所需数据库表   
    $  python manage.py runserver # 测试项目是否运行
    $  python manage.py collectstatic # 收集静态文件
    $  python manage.py create_admin --email "admin@ss.com" --username "admin1" --password "adminadmin" # 创建超级用户账号

启动并访问

  • 执行以下命令,启动。
uwsgi uwsgi.ini
uwsgi uwsgi.ini里的内容
[uwsgi]
plugins=gevent
socket = :8001   #启动监听的端口,和上面 nginx监听的一样
; http = 0.0.0.0:8000
module = apps.wsgi:application
pidfile = /tmp/django-s sp anel.pid
enable-threads = true

gevent-early-monkey-patch = True
gevent-wait-for-hub = True
gevent = 10
workers = 1
master = True
vacuum = True

# log
logdate = true
logslow = true
logbig = true
log-5xx = true

安装 screen,screen -S 名称 创建后台持续运行。

问题汇总

open(“./gevent_plugin.so”)错误

docker logs web
[uWSGI] getting INI configuration from uwsgi.ini
open("./gevent_plugin.so"): No such file or directory [core/utils.c line 3732]
!!! UNABLE to load uWSGI plugin: Error loading shared library ./gevent_plugin.so: No such file or directory !!!

安装:

apt-get install uwsgi-plugin-python
apt-get install uwsgi-plugin-python3
或者
sudo apt-get install uwsgi-plugins-all

如果还是报错(open(“./gevent_plugin.so”)),留意最后一行 可能是端口冲突了

赞(0) 请喝奶茶
未经允许不得转载:吾爱AK-哇咔咔AK » 新管理面板安装+设置+问题记录(后端接入失败作者github上的wiki也删除了此方法)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章对你有用,奖励一杯奶茶给我也是可以滴(o゚▽゚)o

微信扫一扫打赏