【环境】2019.8 CTFd平台搭建过程

最近想在我阿里云服务器上搭一个ctfd平台给大家刷题,百度搜了一堆教程基本都是一样的。但是我遇到的问题最终还是我自己找出解决办法,下面记录一下搭建的过程。

注:以下过程使用root用户完成,如果使用普通用户的话,记得sudo

  1. 首先安装python3,因为我的云服务器python版本是2。安装过程推荐这篇文章:https://blog.csdn.net/lovefengruoqing/article/details/79284573
    要注意的是,最后一步创建软链接,为了方便,我们创建名为python3的软链,python的软链还是留给python2去使用
  2. 之后使用python3命令即可运行python3,对应的使用pip要输入这样的命令才能使用py3而不是py2的pip:# python3 -m pip install……
  3. 先把pip升个级,# python3 -m pip install --upgrade pip。
  4. git clone https://github.com/CTFd/CTFd.git 下载ctfd,然后cd进目录,python3 -m pip install -r requirements.txt 安装需要用到的模块等
  5. 这时候python3 serve.py应该就可以运行了,网上有些教程比较老还需要改config.py文件,其实现在的ctfd不需要更改也可以运行的。可以看到运行的是4000端口,只有本地地址可以访问,我用云服务器的话,是没办法看到效果了,而且平台是开放给协会队员们使用的,那如何开放给外网,这时候需要用到gunicorn
  6. #python3 -m pip install gunicorn
  7. 不知道直接用python3安装会怎么样,因为我之前用python2安装过gunicorn,所以运行的时候不支持python3的语法。大家可以用 whereis gunicorn命令找到脚本的位置,然后修改第一行为python3的软连接的位置,这样之后就会使用python3运行了
  8. 这里注意要先cd到ctfd的目录,然后按照网上的“统一答案”,应该是运行:
    #gunicorn --bind 0.0.0.0:8000 -w 1 “CTFd:create_app()”
    这一步的意思是将ctfd映射到8000端口上运行,这时候应该就可以访问了。如果访问不了去看一下防火墙和云安全组的配置,开没开8000端口。
  9. 但是! 访问过后发现,太慢了!10几秒才能完成一个请求,网上的教程统统都是用nginx。可是我已经折腾一下午,不想再折腾nginx了,留点东西以后再学。仔细观察一下发现,运行gunicorn的命令中的-w参数是调整进程的,那调大一点不就好了嘛
  10. 最终的命令: gunicorn -D --bind 0.0.0.0:8000 -w 20 “CTFd:create_app()”
    调成了20个进程,-D是放在后台运行。大概每个进程等10秒让它在后台开启,可以用ps aux看开启情况,再访问网站发现速度果然快了很多

这次搭建CTFd,又学到了很多东西,包括linux的一些查看文件位置,后台进程的命令,python运行web服务的方法等。而且因为搭建之后速度太慢,我尝试了很多办法(虽说最终还是因为懒没有去学nginx),包括docker的使用命令,其他ctf平台的搭建(最后发现都不是很快)。还差点想把我的云服务器给升配。最后靠自己发现网上众多教程忽略的一点,还是蛮有成就感的。

搭建花费时间大概3小时,以此博文留念。

猜你喜欢

转载自blog.csdn.net/asd413850393/article/details/98123982