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

2023-10-27

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


前言

我的系统是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,他的文章帮助我完成了网站搭建。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos7上搭建CTFd(阿里云服务器版) 的相关文章

  • IDEA的使用和快捷键

    从刚开始Eclipse到IDEA的不顺手 一点一点习惯上IDEA的使用 可能回去使用Eclipse估计会用不惯了 毕竟IDEA自带了很多工具maven git等工具 还有下边的一些窗口用着也还不错 大概记录一下自己在使用IDEA的过程和工作
  • 毕业项目SSM框架配置文件之applicationContext.xml

    applicationContext xml
  • 32. 最长有效括号

    32 最长有效括号 题目描述 给你一个只包含 和 的字符串 找出最长有效 格式正确且连续 括号子串的长度 示例1 输入 s 输出 2 解释 最长有效括号子串是 示例2 输入 s 输出 4 解释 最长有效括号子串是 示例3 输入 s 输出 0
  • C/C++中分离(detach)线程的陷阱

    C C 中分离 detach 线程的陷阱 版权声明 线程资源回收 pthread join pthread detach 什么时候分离线程会存在陷阱 方法论 既使用quick exit 又需要析构 PS 版权声明 本文为博主原创文章 未经博
  • QEventLoop 的使用

    背景 事件循环本质上就是一个无限循环 不停地去获取下一个事件 然后做出处理 直到 quit 事件发生 循环结束 QEventLoop QEventLoop 即 Qt 中的事件循环类 其中 exec 是启动事件循环 调用 exec 以后 调用
  • 在宿主机查看docker使用cpu、内存、网络、io情况

    使用命令 docker stats OPTIONS CONTAINER docker stats命令返回一个用于运行容器的实时数据流 要将数据限制到一个或多个特定的容器 可以指定一个由空格分隔的容器名称或ID的列表 您也可以指定一个已停止的
  • Guava缓存(一)基础

    1 概述 1 1 简介 Guava缓存 谷歌开源的一种本地缓存 使用本节点的内存来存储的 实现原理类似于ConcurrentHashMap 使用多个segments方式的细粒度锁 在保证线程安全的同时 支持高并发场景需求 同时支持多种类型的

随机推荐

  • linux并发服务器 —— IO多路复用(八)

    半关闭 端口复用 半关闭只能实现数据单方向的传输 当TCP 接中A向 B 发送 FIN 请求关闭 另一端 B 回应ACK 之后 A 端进入 FIN WAIT 2 状态 并没有立即发送 FIN 给 A A 方处于半连接状态 半开关 此时 A
  • 热门免费高效scrum敏捷项目管理工具

    Scrum中非常强调公开 透明 直接有效的沟通 这也是 可视化的管理工具 在敏捷开发中如此重要的原因之一 通过 可视化的管理工具 让所有人直观的看到需求 故事 任务之间的流转状态 可以使团队成员更加快速适应敏捷开发流程 Leangoo领歌
  • Elasticsearch高可用和路由规则

    文章目录 Lucene Elasticsearch ELK stack Elasticsearch集群和分片路由 高可用 Lucene 迄今为止最先进 性能最好的 功能最全的搜素引擎库 Elasticsearch 基于Apache Luce
  • flutter之Align控件

    Align控件即对齐控件 能将子控件所指定方式对齐 并根据子控件的大小调整自己的大小 对齐子控件的方式 bottomCenter 0 5 1 0 底部中心 bottomLeft 0 0 1 0 左下角 bottomRight 1 0 1 0
  • Unity机器学习2 ML-Agents第一个例子

    Unity机器学习2 ML Agents第一个例子 上一节我们安装了机器学习mlagents的开发环境 本节我们创建第一个例子 了解什么是机器学习 我们的例子很简单 就是让机器人自主移动到目标位置 不能移动到地板范围外 首先我们来简单的了解
  • SpringBoot整合ElasticSearch实现模糊查询,排序,分页,高亮

    目录 前言 1 框架集成 SpringData 整体介绍 1 1Spring Data Elasticsearch 介绍 2 框架集成Spring Data Elasticsearch 2 1版本说明 2 2 idea创建一个springb
  • js 给图片添加水印

    如何在图片上添加水印 1 把图片或者图片文件转成image元素 2 把转成的image转成canvas 3 在生成的canvas中添加水印 先看效果 1 把图片或者图片文件转成image元素 function urlToImg url re
  • 哨向 Mika & Lelush 2

    Report On Sentinels Guides of Atypical Combinations 非典型性哨兵向导结合报告 Mika x Lelush 2 亲爱的你躲在哪里发呆 上
  • Java并发(五) JUC - 类汇总和学习指南

    提示 本文对J U C进行知识体系解读 后续的文章还针对 几乎所有的核心的类以及常用的工具类作了详细的解读 如果没有时间详细阅读相关章节 可以跟着本文站在一定的高度了解JUC下包的设计和实现 同时对重要的章节提供跳转链接 您可以链接过去详读
  • 国家集训队论文分类整理

    国家集训队论文分类整理 组合数学 计数与统计 2001 符文杰 P lya原理及其应用 2003 许智磊 浅谈补集转化思想在统计问题中的应用 2007 周冬 生成树的计数及其应用 2008 陈瑜希 P lya计数法的应用 数位问题 2009
  • LPDDR4协议规范之 (四)命令和时序

    LPDDR4协议规范之 四 命令和时序 命令真值表 激活操作 读写访问操作 读前沿和后沿 突发读取操作流程 读操作时序 写前沿和后沿 突发写操作 写入均衡 待更新 命令真值表 激活操作 ACTIVATE命令由两个连续命令组成 Activat
  • 【华为OD机试 2023 B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • [创业-38]:公司、企业、组织的本质与层次

    目录 前言 公司是什么 公司的本质是什么 层次一 自身闭环系统 闭环 不是 封闭 1 1 公司是一种组织 自身的形态角度看 1 2 公司的本质是满足客户的需求 输入 存在的目的 1 3 公司的本质是解决社会和客户的问题 输入 存在的目的 1
  • 2012各大公司的C++试题

    那么多C 试题 其实最关键的是要知道考察的知识点在哪里 哎 应该好好重新看看 effective c 了 网易3道C 试题 题目1 class A public A int j i j fun1 here 在构造函数中调用了虚函数 A vo
  • EM算法步骤

    一般的 用Y表示观测随机变量的数据 Z表示隐随机变量的数据 Y和Z连在一起称为完全数据 只有观测数据Y称为不完全数据 假设给定观测数据Y 其概率分布为 P Y P Y
  • 【满分】【华为OD机试真题2023 JAVA&JS】最多提取子串数目

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 最多提取子串数目 知识点字符串统计 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 给定由 a z 26个英文小写字母组成的字符串A和B 其中A中可能存在重复字母
  • 解决urllib.error.URLError: <urlopen error [Errno 104] Connection reset by peer>

    在使用URL下载或跑模型的时候 报错urllib error URLError
  • 汽车线性二自由度动力学方程离散化与LQR控制原理

    汽车线性二自由度动力学方程离散化与LQR控制原理 观看B站up 忠厚老实的老王 车辆动力学视频所作 笔记
  • 【Linux】scp命令在linux和windows之间互传文件

    为了进行系统维护操作 有时需要再windows和linux或Unix系统之间互传文件 虽然有很多工具可以实现该功能 但我还是觉得命令行来的方便快捷 起初使用linux的scp命令 总是不成功 网上也没有相关介绍 经过几次努力之后 终于成功的
  • centos7上搭建CTFd(阿里云服务器版)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 阿里云搭建CTFd 前言 一 安装Python3 1 安装依赖 2 下载安装包并且编译安装 3 创建python3 pip3软连接 4 覆盖python2 5 故障修复 二