在 Linux 环境下安装。判题机是在 Linux 环境下写的,Windows 下无法运行判题机。
搭建 LNMP (或 LAMP) 环境:PHP 7.x或8.x、MySQL 5.7或以上、Nginx / Apache2
本教程分为 一键安装脚本、Docker安装脚本(1Panel面板安装)、手动安装过程。这三个过程选择其中一个即可。
admin
,密码:123456
。测评机如需加入开机自动启动,请安装完后看 开机启动
适合在新装的系统或未运行 Web (nginx、mysql)有关服务的系统中。
注意!!!此方法目前仅在 Ubuntu 20/22/23、Debian 10/11/12、Alpine 3.18/3.19、CentOS9/Rocky Linux9 中测试通过。其它 Linux 系统还未测试。
执行以下命令,进行安装(如果安装过程中出现错误,可以再次尝试运行安装命令):
Ubuntu运行:
wget https://gitee.com/yhssdl/lpszoj/raw/master/docs/install.sh && sudo bash install.sh
Debian(Armbian) 11运行(root账号):
apt install -y wget && wget https://gitee.com/yhssdl/lpszoj/raw/master/docs/install.sh && bash install.sh
Alpine运行(root账号):
将软件源更换为国内的源。
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
sed -i 's/#http/http/g' /etc/apk/repositories
运行安装脚本
apk add bash wget && wget https://gitee.com/yhssdl/lpszoj/raw/master/docs/install.sh && bash install.sh
CentOS运行:
yum install wget -y && wget https://gitee.com/yhssdl/lpszoj/raw/master/docs/install.sh && sudo bash install.sh
该脚本将 OJ 安装在 /var/www/lpszoj
目录下。
安装后管理员账号: admin
,密码:123456
。
初始默认密码过于简单,请立即登陆修改。
docker run -d -p 8088:80 --name lpszoj yhssdl/lpszoj
以上命令中,映射到 8088 端口,你可以通过 http://主机IP:8088 来访问,当然你也docker可以修改映射端口。
创建挂载卷。
docker volume create www
运行 lpszoj 镜像。
docker run -d -p 8088:80 \
--mount type=volume,source=www,destination=/app/lpszoj \
--name lpszoj yhssdl/lpszoj
docker update --restart=always lpszoj
Debian + 1Panel面板 + OJ系统安装WORD教程 [推荐]
:点击下载教程
Debian + 宝塔面板 + OJ系统安装WORD教程:点击下载教程
搭建 LNMP (或 LAMP) 环境,可以参考:LNMP 环境搭建。
下载 lpszoj
。
运行命令:
git clone https://gitee.com/yhssdl/lpszoj.git
配置 Web 端
配置数据库信息
在 lpszoj/config/db.php
文件中配置数据库信息,请根据数据库实际情况修改相应的 username
和 password
。在服务器上可以使用 vim
或 nano
命令进行编辑。例如:
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=ojdate',
'username' => 'root',
'password' => '123456',
'charset' => 'utf8mb4',
];
注意: Web 程序不会为你创建数据库,需要你自己手动创建该数据库(创建方法:运行 mysql -u root -p
登录MySQL,然后 create database ojdate;
,执行 quit;
可退出MySQL,注意此处命令有分号)。
执行安装命令
进入 lpszoj 目录,在命令行运行 ./yii install
来安装。安装过程会自动导入所需的 SQL 数据,并且需要你根据提示输入 OJ 管理员的账号密码。
修改 /etc/nginx/sites-enabled/default
文件,需要修改的配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
# 修改 root 后的路径为 lpszoj/web 目录所对应的路径。看你具体把 lpszoj 目录放到哪里。
root /var/www/lpszoj/web;
index index.php;
server_name _;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
}
修改后使用 sudo nginx -s reload
重现加载配置
做好以上步骤后便可以使用 Web 端:
http://ip地址
本地主机则访问 http://127.0.0.1
此时还不能进行判题,需配置判题机才能判题。
配置判题机
sudo apt install libmysqlclient-dev libmysql++-dev
(如果是CentOS,可以运行 yum install -y mysql-devel
,如果是CentOS9/Rocky9中,运行yum install -y mariadb-connector-c-devel
)(如果是Debian 11,可以运行apt install libmariadb-dev-compat libmariadb-dev
)sudo useradd -m -u 1536 judge
judge
目录(即运行 cd judge
命令),然后运行 make
命令sudo ./dispatcher
命令配置配置多边形系统
polygon
目录(即运行 cd polygon
命令),然后运行 make
命令sudo ./polygon
命令注意,在下面这些命令中,有 vim
开头的是需要编辑文件的,若不会使用 vim
,则将 vim
改成 nano
。执行 nano 文件名
命令后会进入 nano 编辑器并打开文件,修改好用组合键 Ctrl X
退出。
$ mysql -u root -p
mysql> create database lpszoj;
mysql> quit;
在以下命令中,#
字符及之后的字符为注释,不用输入
$ git clone https://gitee.com/yhssdl/lpszoj.git
$ cd lpszoj
$ vim config/db.php
$ ./yii install
$ sudo useradd -m -u 1536 judge
$ cd judge
$ sudo apt install libmysqlclient-dev libmysql++-dev
$ make
$ sudo ./dispatcher
$ cd ../polygon
$ make
$ sudo ./polygon
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。