UOJ社区版本创建开发环境

UOJ 社区版开发环境搭建

本文能够指导你对UOJ社区版的二次开发,搭建开发环境。

开发环境:

  • ubuntu 20.04

  • docker 20.10.17

  • Xdebug 安装在docker镜像中

  • php

  • apache2

 

环境安装

docker

sudo apt-get install docker # 直接用apt来安装docker

安装完成后使用命令sudo docker -v查看版本,出现类似字样即可, docker没有特别的版本需求,所以版本不同也没事。

image-20220627210025683

IDE安装-phpstorm

可以使用Jetbrain toolbox来安装, 安装地址

docker镜像获取

国内源加速

sudo vim /etc/docker/daemon.json

修改配置文件,如果不存在就创建

国内镜像仓库

国内Docker镜像仓库名称链接
Docker 官方中国区 https://registry.docker-cn.com
网易 http://hub-mirror.c.163.com
中国科学技术大学 https://docker.mirrors.ustc.edu.cn

从上面选一个即可

{
 "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

重新加载daemon

sudo systemctl daemon-reload

重启docker

sudo service docker restart

获取UOJ镜像

sudo docker pull universaloj/uoj-system

该步骤可能需要一些事件,耐心等待。

安装完成后查看镜像是否成功下载

sudo docker images # 查看本机的镜像

image-20220627210853885

拉取UOJ代码

在你要开发的目录下使用git获取uoj代码

git clone https://github.com/UniversalOJ/UOJ-System.git

image-20220627211114292

启动docker

启动的时候将拉取的代码目录映射到容器中的/opt/uoj/web下,将本地80端口映射到容器80端口,如下

sudo docker run -it --name uoj -v /home/geray/uoj/UOJ-System/web:/opt/uoj/web -p 80:80 --cap-add SYS_PTRACE uoj-system

若80端口被使用, 可视同netstat -tunlp查看是哪个进程占用了, 或者换一个端口即可。

启动后,使用sudo docker ps查看运行情况

image-20220627211754316

此时浏览器进入127.0.0.1查看是否启动成功, 若出现502错误代码,可能是由于未修改配置文件导致的。

需要在web/app/.default-config.php中将host修改为127.0.0.1,将port修改为80再次查看。

image-20220627212206681

此时用php打开project选择UOJ-System/web修改其中页面再刷新浏览器即可得到实时更新。

Debug实现

若想使用phpstorm进行debug则需要在docker中安装Xdebug,然后在phpstorm中进行配置链接,先埋个坑。

posted on 2022-07-04 10:07  gerayking  阅读(381)  评论(0)    收藏  举报