前段时间特别忙,然后刚回学校,作业还没做完,又有新的任务了,学校打算用CTF这种形式来对我们专业的学生进行考核,不评论这种做法,单纯记录下搭建过程。刚开始按照大佬的博文去搭,结果搭崩了……好像是版本不一样?心酸,还是看官方手册吧
以下部分卒^(* ̄(oo) ̄)^
环境准备
yum install git
yum install httpd mariadb mariadb-server mariadb-devel python devel gcc MySQL-python
pip install mysql-python
下载项目
git clone https://github.com/isislab/CTFd.git
安装CTFd
进入CTFd的目录
./prepare.sh
以上部分卒!
以下尝试使用nginx+gunicorn
环境准备
yum install -y git nginx mariadb mariadb-server Mysql-python python-pip
打开mariadb
systemctl start mariadb
设置mariadb密码:
mysql_secure_installation
下载
git clone https://github.com/isislab/CTFd.git
安装CTFd
./prepare.sh
修改CTFd目录下的config.py
vim config.py
HOST = "123.206.**.**"
SQLALCHEMY_DATABASE_URI = 'mysql://root:<mysqlpasswd>@localhost/CTFd?charset=utf8'
运行serve.py
然后再次进入mysql
use CTFd;
ALTER TABLE awards CONVERT TO CHARACTER SET utf8;
ALTER TABLE challenges CONVERT TO CHARACTER SET utf8;
ALTER TABLE config CONVERT TO CHARACTER SET utf8;
ALTER TABLE containers CONVERT TO CHARACTER SET utf8;
ALTER TABLE files CONVERT TO CHARACTER SET utf8;
ALTER TABLE `keys` CONVERT TO CHARACTER SET utf8;
ALTER TABLE pages CONVERT TO CHARACTER SET utf8;
ALTER TABLE solves CONVERT TO CHARACTER SET utf8;
ALTER TABLE tags CONVERT TO CHARACTER SET utf8;
ALTER TABLE teams CONVERT TO CHARACTER SET utf8;
ALTER TABLE tracking CONVERT TO CHARACTER SET utf8;
ALTER TABLE wrong_keys CONVERT TO CHARACTER SET utf8;
退出mysql
在主要的CTFd目录下运行
gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"
配置nginx 端口转发
vim /etc/nginx/nginx.conf
修改
location /{
proxy_pass http://localhost:4000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
systemctl enable nginx
systemctl enable mariabd
systemctl start nginx
然后配置好VPS的防火墙安全策略等,OK