后端与数据库部署
部署数据库
首先安装Mysql数据库
如果自己已经安装了数据库的,可以跳过本步骤
sudo apt-get install mysql-server
1
然后新建数据库
CREATE DATABASE LPOJ DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
1
如果要公网访问,可以执行以下数据库语句
mysql -uroot -p
mysql > USE mysql
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
mysql > ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password by 'your_password';
mysql > flush privileges;
然后修改配置文件(不同系统可能在不同地方)
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
修改bind-address 为 0.0.0.0
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
部署后端
按顺序安装Django,如已安装,可跳过
- 首先安装Django
pip install django
pip install djangorestframework
pip install django-filter
sudo apt-get install python-django
pip install django-cors-headers
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- 安装python数据库操作类
pip install mysqlclient
1
- 部署后端
cd Backend
cd Backend
sudo nano setting.py
1
2
3
4
5
2
3
4
5
修改数据库配置为你自己的数据库IP端口和用户名密码
cd ..
python manage.py makemigrations
python manage.py makemigrations judgestatus item problem user contest board blog wiki classes &&
python manage.py migrate
echo "from django.contrib.auth.models import User; User.objects.filter(email=\"admin@example.com\").delete(); User.objects.create_superuser(\"admin\", \"admin@example.com\", \"admin\")" | python manage.py shell
python manage.py runserver 0.0.0.0:8000
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
添加管理员
安装成功后,先通过IP:80访问OJ,注册一个用户
然后进入 IP:8000/admin 以用户名admin 密码admin 登录后台(请及时修改后台密码)
修改User表中,你注册的超级用户的type为3,使得你注册的用户变为超级管理员
Docker 部署
非专业用户不推荐使用Docker单独部署 修改Dockerfile中的ENV为你的数据库地址和密码等
docker build -t lpojbackend .
docker run -d -p 8000:8000 lpojbackend
1
2
2