centos7上搭建CTFd(阿里云服务器版)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

我的系统是centOS7 ,CTFd的版本不太清楚,但应该是最新版。
CTFd简介:CTFd是一款基于Apache2.0的协议的开源CTF平台,基本上能满足目前的CTF竞赛需求,同时该平台提供了强大的插件功能,可以自己进行插件开发。(我的操作都在root权限下)


一、安装Python3

新版的CTFd运行和安装需要用到最新版pip,python2好像不支持,那只能升级到python3,不然报错报到怀疑人生。(还要python3.7以上,否则pip不支持更新到22.04,个人猜测)

1、安装依赖

yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

2、下载安装包并且编译安装

#下载
wget https://cdn.npm.taobao.org/dist/python/3.7.0/Python-3.7.0.tgz
#解压安装包
tar -zxvf Python-3.7.0.tgz
#编译安装python
cd Python-3.7.0 && ./configure --prefix=/usr/local/python3 && make && make install

3、创建python3、pip3软连接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

4、覆盖python2

mv /usr/bin/python /usr/bin/python2_old
mv /usr/bin/pip /usr/bin/pip2_old
#修改软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

至此,python 就搞定了,但此时我们会发现yum不能用了,这是因为yum依赖于python2,我们只需要做一些更改就可以继续使用了,欸嘿嘿。

5、故障修复

vim /usr/bin/yum
#把文件中的python修改成python2.7

vim /usr/libexec/urlgrabber-ext-down
同上,也是把python改成python2.7

二、CTFd的搭建

1.下载Mariadb

添加mariadb的国内yum源

vim /etc/yum.repos.d/Mariadb.repo

添加以下内容

# MariaDB 10.2 CentOS repository list - created 2018-06-06 03:42 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

清除yum源缓存

yum clean all

生成新的yum源缓存

yum makecache all

安装mariadb

yum install MariaDB-server MariaDB-client -y

启动mariadb并且添加开机自启

systemctl start mariadb.service
systemctl enable mariadb.service

新安装的mariadb不需要登录密码,直接输命令

mysql -u root -p

回车就可以了
设置密码

mysqladmin -u root -p password (yourpassword)
例如:
mysqladmin -u root -p password 1234

切记,当看到Enter password,这是提示你输入旧密码,因为我们是全新安装,没有旧密码,直接回车就可以。

2.安装需要的插件

yum install git -y
yum install epel-release
升级一下pip
pip install --upgrade pip
安装flask
pip install flask

3、安装apache

yum install httpd
#设置开机自启
systemctl enable httpd.service
#验证是否自启动
systemctl is-enabled httpd.service
#出现enable,则启动成功

4、获取CTFd源码

进入html文件夹下

cd /var/www/html

下载源码

wget https://github.com/CTFd/CTFd/archive/master.zip

5、安装CTFd

需要先安装unzip
yum install unzip -y

unzip master.zip

更改文件夹权限

chmod -R 777 CTFd-master/

进入CTFd-master并运行脚本

cd CTFd-master

sudo./prepare.sh

进入数据库

mysql -u root -p
输入密码后回车

use mysql
 
创建数据库
create database CTFd;
退出
exit;

修改一个文件,这样就可以连接了

vim serve.py

请添加图片描述

app.run(debug=True, threaded=True, host="127.0.0.1", port=args.port)
改为
app.run(debug=False, threaded=True, host="0.0.0.0", port=args.port)

启动CTFd

#重启apache
systemctl restart httpd
#重启数据库
systemctl restart mariadb
#关闭防火墙
systemctl stop firewalld

由于是服务器,还要打开一个端口,在安全组配置中
请添加图片描述
添加一个4000的端口,这样才能被访问

运行CTFd

python serve.py
由于python运行的在关闭远程链接后会断
我们再配置后台运行
nohup python -u serve.py > test.log 2>&1 &

到此我们的平台就搭建完成了

感谢博主 qq_43694121,他的文章帮助我完成了网站搭建。


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃泡面不喝汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值