Ubuntu16.04+nginx+uwsgi搭建CTFd環(huán)境

背景

? ? ? ? CTFd是時(shí)下比較流行的CTF平臺(tái),其安裝和部署也是比較容易。雖然facebookCTF界面夠炫夠酷,但是其太吃資源。相對(duì)來講CTFd頁(yè)面簡(jiǎn)約流暢,于是選擇自己搭建CTFd來折騰一番。


準(zhǔn)備

? ? ? ?本次環(huán)境搭建使用的是阿里云的ECS,ubuntu16.04 64位。


開工

1、安裝git

sudo apt-get install git

2、安裝pip

sudo apt-get install python-pip

3、安裝Flask

sudo pip install Flask

4、下載CTFd

進(jìn)入/var/www目錄

sudo git clone https://github.com/isislab/CTFd.git

5、安裝CTFd

cd CTFd

sudo ./prepare.sh

6、修改CTFd

執(zhí)行完第5步后所需的依賴應(yīng)該都已經(jīng)安裝好了。先別急著運(yùn)行CTFd。先修改CTFd/config.py文件,對(duì)數(shù)據(jù)庫(kù)進(jìn)行相關(guān)的設(shè)置(這里以MYSQL為例)

config.py文件設(shè)置

7、mysql設(shè)置

進(jìn)入mysql,新建一個(gè)ctfd數(shù)據(jù)庫(kù)

create datebase ctfd;

exit;

8、運(yùn)行CTFd

sudo python serve.py

運(yùn)行后,別忙著設(shè)置,先退出

9、設(shè)置ctfd數(shù)據(jù)庫(kù)字段,防止字符亂碼

再次進(jìn)入mysql數(shù)據(jù)庫(kù),輸入下面的命令:

use ctfd;

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 containers CONVERT TO CHARACTER SET utf8;

ALTER TABLE files 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;

10、開始運(yùn)行

sudo python serve.py


部署(正戲開始~)

? ? ? 完成以上步驟只是在本地搭起服務(wù)器,要是想在公網(wǎng)訪問,還需要安裝gunicorn。

1、pip install gunicorn

2、sudo gunicorn --bind 0.0.0.0:8000 - w 4 "CTFd:create_app()"

此時(shí)在瀏覽器訪問你的服務(wù)器公網(wǎng)ip:4000就可以進(jìn)入平臺(tái)了

但是這樣運(yùn)行起來性能還是不好,所以我采用了nginx+uwsgi的方法來提高性能

首先安裝nginx和uwsgi

apt-get install nginx

pip install uwsgi

修改/etc/nginx/nginx.conf配置

server? {

? ? ? ? ? ? ?listen 80;

? ? ? ? ? ? ?server_name 公網(wǎng)IP;

location / {

? ? ? ? ? ? ? ? include uwsgi_params;

? ? ? ? ? ? ? ?uwsgi_pass unix:/tmp/uwsgi.sock;

}

修改/var/www/CTFd/ctfd.ini文件配置

[uwsgi]

# Where you've put CTFD

chdir = /var/www/ctfd/

之后進(jìn)入/var/www/CTFd目錄,運(yùn)行

uwsgi -s /tmp/uwsgi.sock --chmod-socket=666 -w 'CTFd:create_app()'

然后在瀏覽器訪問你的公網(wǎng)IP,應(yīng)該就OK了。


自定義

你可以自己修改網(wǎng)站的logo、管理頁(yè)面的配置,總之能做的事情有很多。

文章到這里就結(jié)束了,希望可以幫到有需要的人~


參考文獻(xiàn)

https://github.com/CTFd/CTFd/wiki/Deployment

http://flask.pocoo.org/docs/0.10/deploying/uwsgi/#configuring-nginx

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容