2018年7月9日
- 修复了当面付可能漏单的BUG(我用不到)
添加清理僵尸用户功能
cd /www/wwwroot/www.sspanel.com/django-sspanel/commands
python clear_zombie_user.py
2018年6月17日:
- 前端
sites.py
增加了是否开启注册的开关
ALLOW_REGISET = True - 后端增加单端口多用户设置
2018年6月1日:
- 增加单端口多用户,去除91pay接口
- 后端及添加节点教程 django-sspanel后端搭建及添加节点-最新
- 博主的站点欢迎围观:augustdoit小站
注意:前后端均为master分支。
支付宝模块开通需要签约,签约资料需要个体工商户执照等信息,所以没写支付模块。
环境:
CentOS 7
部署方式:Nginx
>uwsgi
>Django
前置组件:Nginx
&Mysql
Pyenv
Python3
Uwsgi
先设置时区
timedatectl set-timezone Asia/Shanghai
Nginx & Mysql
是必须的,为了方便也装了PHP
及phpmyadmin
参照:宝塔官网(简单好用的Linux/Windows服务器管理面板)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
完成后输出管理页面地址、端口以及账户、密码。
浏览器打开宝塔面板,首次登陆就会推荐安装LANMP,选LNMP。
宝塔面板-网站-添加站点(可以同时添加数据库)
站点名称 www.sspanel.com
根目录 /www/wwwroot/www.sspanel.com
数据库名 sspanel
数据库用户名 sspanel
数据库密码 sspanel
宝塔面板-网站-设置-域名管理 添加域名 sspanel.com
宝塔面板-网站-设置-SSL-Let’s Encrypt 申请 SSL
项目地址:https://github.com/pyenv/pyenv
yum -y install git
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
增加pyenv init
到SHELL
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
重启令其生效
exec "$SHELL"
source ~/.bash_profile
安装Python所需的相关依赖
yum -y install gcc
yum -y install make
yum -y install zlib zlib-devel
yum -y install readline readline-devel readline-static
yum -y install openssl openssl-devel openssl-static
yum -y install sqlite-devel
yum -y install bzip2-devel bzip2-libs
安装Python3
pyenv install 3.6.1
安装好后,输入如下命令查看相关信息
pyenv versions
回显结果如图字样说明安装成功
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
exec "$SHELL"
pyenv virtualenv 3.6.1 venv-sspanel
cd /www/wwwroot/www.sspanel.com
git clone -b master https://github.com/Ehco1996/django-sspanel.git
因为目录结构的问题,更改下网站目录设置
宝塔面板-网站-设置-网站目录
在网站目录后加入/django-sspanel
(如图所示)
cd django-sspanel
此时绝对路径:/www/wwwroot/www.sspanel.com/django-sspanel
pyenv local venv-sspanel
pip install -r requirements.txt
宝塔中找到进行编辑,都有中文注释
/www/wwwroot/www.sspanel.com/django-sspanel/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 # 需要设置数据库密码
一项一项来:
# mysql 设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'autocommit': True,
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
'charset': 'utf8mb4',
},
}
}
# 是否开启邮件功能
USE_SMTP = True
# 是否开启ssl/tls
EMAIL_USE_TLS = False
EMAIL_USE_SSL = True # 我用Gmail
# 我使用gmail邮箱作为smtp服务器
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = '密码'
DEFAULT_FROM_EMAIL = 'Ehco<[email protected]>'
# 网站密钥
SECRET_KEY = '秘钥喽随便设置'
# 默认的theme
# 可选列表在 apps/constants.py 里的THEME_CHOICES里
DEFAULT_THEME = 'superhero'
# 域名设置
ALLOWED_HOSTS = [
'www.sspanel.com',
'sspanel.com',
]
# SS面板设置:
MB = 1024 * 1024
GB = 1024 * 1024 * 1024
DEFAULT_TRAFFIC = 5 * GB
START_PORT = 1024
# 默认加密混淆协议
DEFAULT_METHOD = 'none'
DEFAULT_PROTOCOL = 'auth_chain_a'
DEFAULT_OBFS = 'http_simple'
# 签到流量设置
MIN_CHECKIN_TRAFFIC = 10 * MB
MAX_CHECKIN_TRAFFIC = 200 * MB
# 是否启用支付宝系统
USE_ALIPAY = True
# 支付订单提示信息 修改请保留 {} 用于动态生成金额
ALIPAY_TRADE_INFO = '谜之屋的{}元充值码'
# 网站title
TITLE = '谜之屋'
SUBTITLE = '秘密的小屋test'
# 用户邀请返利比例
INVITE_PERCENT = 0.2
# 用户能生成的邀请码数量
INVITE_NUM = 5
# 网站邀请界面提示语
INVITEINFO = '邀请码实时更新,如果用完了请关注公众号findyourownway获取'
# 网站域名设置(请正确填写,不然订阅功能会失效:
HOST = 'https://www.sspanel.com/' # 注意这里http还是https
# 部分API接口TOKEN
TOKEN = 'test' #随便设置,与后端userapiconfig.py一致
import os
from configs.default import *
DEBUG = False
DATABASES['default'].update(
{'PASSWORD': os.getenv('MYSQL_PASSWORD', '替换成数据库密码'),
'HOST': os.getenv('MYSQL_HOST', '127.0.0.1')
})
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
python manage.py migrate
python manage.py runserver
按键盘组合键Ctrl+C结束运行
python manage.py collectstatic
python manage.py createsuperuser
宝塔面板-网站-设置-伪静态
添加如下规则
location /media {
alias /www/wwwroot/www.sspanel.com/django-sspanel/media;
}
location /static
{
alias /www/wwwroot/www.sspanel.com/django-sspanel/static;
expires 12h;
}
location /
{
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
}
python manage.py crontab add
uwsgi uwsgi.ini
输出
CTRL+C终止
转为后台运行
yum -y install screen
screen -dmS uwsgi uwsgi uwsgi.ini
说明:后面有关于screen
用法。
OK,尝试访问你的域名吧!
管理员账号登录之后,先得去数据后台绑定一下(这也是安装步骤里面的一部分,只有管理员账号需要做这个设置,普通用户通过前台注册是自动绑定的。但请注意管理员账号一定要自己这样手动绑定一次,不然普通用户注册后都是没绑定的。)
浏览器打开你的网站/admin
例如: https://www.sspanel.com/admin
管理员帐号登陆
ss账户-添加
User:点击下拉选择管理员账号sspanel
设置一下端口,保存就可以了
至此 前端配置完毕,重新打开站点进入后看到如下界面
以本文screen -dmS uwsgi uwsgi uwsgi.ini
为例
screen -dmS 用来创建一个处于断开模式的会话,第一个uwsgi为session name。
screen -r uwsgi 可以恢复指定的会话,忘记了可以用screen -ls来查看。
Ctrl+A+D 暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
详细用法见:linux screen 命令详解