- 系統:CentOS 7.5版 (騰訊雲)
- Apache
- Mysql
- Python:2.7.10
- git
- gunicorn
- flask, pip
準備:
#先下載CTFd
git clone https://github.com/isislab/CTFd.git
# 安裝需要安裝的包
cd CTFd/
./prepare.sh
# 安裝python需要的包
pip install -r requirements.txt
# 運行CTFd
python serve.py
配置:
1. 修改CTFd/config.py
文件 (紅箭頭必修改)
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@localhost:3306/ctfd'
HOST="1.1.1.1"
2. 進入MySQL裏新建一個數據庫:
mysql -u root -p
CREATE DATABASE CTFd;
exit;
python serve.py
#再次進入數據庫, 將其轉變爲utf-8
USE CTFd;
show tables;
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;
3.CTFd/logs
目錄下的三個日誌文件全部給足權限(讀寫權限
),可以直接:
|
4. 直接在ctfd目錄下運行 (gunicorn --bind 0.0.0.0:4000 -w 1 "CTFd:create_app()" &)
記得安全組或者防火牆開放4000的端口,不然無法訪問, 此命令是讓後臺也運行CTFd
注:
(_mysql_exceptions.OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)") (Background on this error at: http://sqlalche.me/e/e3q8)
#出現此錯誤: MySQLdb這個模塊是獨立的,有自己獨立的socket
#解決辦法:
cat /etc/my.cnf
#查看[mysql]裏的socket路徑 和 [mysqld]裏的socket路徑 是否爲/var/lib/mysql/mysql.sock
#如果不是, 做個軟連接
ln -s /你的路徑/mysql.sock /var/lib/mysql/mysql.sock