CTFd環境搭建 遇到數據庫不匹配的解決辦法

  • 系統: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目錄下的三個日誌文件全部給足權限(讀寫權限),可以直接:

chmod -R 777 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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章