阿里云搭建CTFd提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 一、安装Python3
- 1、安装依赖
- 2、下载安装包并且编译安装
- 3、创建python3、pip3软连接
- 4、覆盖python2
- 5、故障修复
- 二、CTFd的搭建
- 1.下载Mariadb
- 2.安装需要的插件
- 3、安装apache
- 4、获取CTFd源码
- 5、安装CTFd
- 启动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-devel2、下载安装包并且编译安装
#下载 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 install3、创建python3、pip3软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/python3 /usr/bin/python34、覆盖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 flask3、安装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.zip5、安装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,他的文章帮助我完成了网站搭建。



