CTFd搭建记录
准备环境
Ubuntu 16.04 LNMP
1.更新
sudo apt-get update # 获取最新资源包
sudo apt-get upgrade # 本机软件全部更新
sudo apt-get dist-upgrade # 本机系统软件更新
2.安装git
sudo apt install git
3.安装MariaDB
sudo apt-get install mariadb-server-10.0 mariadb-client-10.0
配置Mariadb的安全选项命令
sudo mysql_secure_installation
设定新密码需要输入,其余回车即可
Enter current password for root (enter for none): 当前root的密码,直接回车,因为新数据库没有密码。
Set root password? [Y/n] 回车,默认为输入Y。
New password: 输入新密码
Re-enter new password 再次输入新密码
Remove anonymous users? [Y/n] 移除匿名用户
Disallow root login remotely? [Y/n] 禁止root远程登录
Remove test database and access to it? [Y/n] 移除测试数据库
Reload privilege tables now? [Y/n] 重新加载权限表
4.Others
1)安装pip
sudo apt install python-pip
2)安装mysql-python
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo pip install mysql-python
若不安装,CTFd中运行serve.py会报错(ImportError: No module named MySQLdb)
3)安装gunicorn
sudo pip install gunicorn
安装CTFd
下载&安装&运行CTFd
sudo git clone https://github.com/isislab/CTFd.git
cd CTFd
sudo ./prepare.sh
sudo python serve.py
配置数据库
修改CTFd目录下的config.py
HOST = "47.76.**.**"
SQLALCHEMY_DATABASE_URI = 'mysql://root:<mysql_passwd>@localhost/CTFd?charset=utf8'
然后进入数据库
mysql -u root -p
新建一个数据库
CREATE DATABASE CTFd;
退出数据库返回CTFd目录运行一下serve.py,ctrl+c退出再进入数据库
use CTFd;
防止乱码,将里面的字符集全部修改为utf-8.
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 files CONVERT TO CHARACTER SET utf8;
ALTER TABLE hints 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
sudo gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()"
访问平台,首次注册账号即为admin