centos7.2从零开始搭建CTFd平台

96
y1ngshu
2017.05.14 00:04* 字数 593

最近学校要做一个ctf的比赛,就想着搭一个平台,好的开源平台就是ctfd和fbctf,但是fbctf对服务器要求配置高,所以只有搭建ctfd了,搭建好了使用效果感觉真心不错。

1.服务器使用的是centos 7.2 64,首先运行一下yum -y update更新一下服务器,再安装一下nginx(yum -y install nginx),因为后面用它来反向代理ctfd的端口可以提高一下性能。

然后安装数据库,yum -y install mariadb mariadb-server,启动数据库systemctl start mariadb,

mysql_secure_installation开始配置数据库,先输入密码,然后一路回车即可,可根据自己需求看着改。

安装git(yum -y install git)

2.

然后新建一个ctf的文件夹,将其下载到里面 git clone https://github.com/isislab/CTFd.git 

然后先运行CTFd下面的./prepare.sh,centos和ubuntu并不一样,可以打开这个文件按照操作系统自己安装插件

yum -y install MySQL-python

修改配置文件config.py,

我的修改是这样的


将图中的修改成自己的信息就行,

然后进入数据库 mysql -u root -p,

新建一个库,CREATE DATABASE CTFd;

此时退出数据库返回CTFd目录运行一下serve.py

ctrl+c退出再进入数据库


use CTFd;

执行

防止乱码,将里面的字符集全部修改为utf-8.

退出mysql,

直接在ctfd目录下运行gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"

记得安全组或者防火墙开放4000的端口,不然无法访问,

就这样,一个CTFd的网站就搭好了,

可以配置下nginx,vi /etc/nginx/nginx.conf


server的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;


然后平滑启动nginx,

nginx -s reload

最后回到开始建的ctf的目录下面的CTFd目录运行gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"

此时直接访问你的服务器地址就能直接入坑了,不用加4000端口了(有些浏览器可能有缓存不能及时访问,刷一下就行了)。用了nginx后会发现更流畅了不是。

日记本
Web note ad 1