UOJ社区版本创建开发环境
开发环境:
-
-
docker 20.10.17
-
Xdebug 安装在docker镜像中
-
php
-
apache2
环境安装
docker
sudo apt-get install docker # 直接用apt来安装docker
安装完成后使用命令sudo docker -v查看版本,出现类似字样即可, docker没有特别的版本需求,所以版本不同也没事。

IDE安装-phpstorm
可以使用Jetbrain toolbox来安装,
docker镜像获取
国内源加速
sudo vim /etc/docker/daemon.json
修改配置文件,如果不存在就创建
国内镜像仓库
| 国内Docker镜像仓库名称 | 链接 |
|---|---|
| Docker 官方中国区 | |
| 网易 | |
| 中国科学技术大学 |
从上面选一个即可
{
"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 # 查看本机的镜像

拉取UOJ代码
在你要开发的目录下使用git获取uoj代码
git clone https://github.com/UniversalOJ/UOJ-System.git

启动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查看运行情况

此时浏览器进入127.0.0.1查看是否启动成功, 若出现502错误代码,可能是由于未修改配置文件导致的。
需要在web/app/.default-config.php中将host修改为127.0.0.1,将port修改为80再次查看。

此时用php打开project选择UOJ-System/web修改其中页面再刷新浏览器即可得到实时更新。
Debug实现
若想使用phpstorm进行debug则需要在docker中安装Xdebug
浙公网安备 33010602011771号