十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
前期准备:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了乐都免费建站欢迎大家使用!
需要有PE的U盘启动盘或者带有PE的光盘启动盘,windows 7之家下载的win7系统内部都集成了PE系统,为装win7系统的用户提供方便,欢迎大家下载使用;
如何制作PE启动U盘请查看:
如何刻录光盘启动盘请查看:
开始安装:
前言:因用U盘启动或光盘启动流程差不多,区别就是在BIOS中设置U盘启动或光盘启动,U盘使用的PE是工具制作自带的PE,本文以光盘中PE来安装win7系统;
步骤一、设置主板的BIOS启动顺序,插入光盘重新启动计算机;
步骤二、进入光盘的系统安装选择界面,我们选择“运行windowsPE系统”,有些镜像中使用的是win8 PE或win 2003PE。效果是一样的;
步骤三、等待PE系统的加载,并登陆PE系统,windows7之家的系统集成PE中有自动恢复win7到C,我们就选择自动的安装方式;
步骤四、双击PE系统中的“自动恢复win7到C”,会有提示“本操作将删除原C盘数据,请确认硬盘已分区并备份好了原C盘数据!”
步骤五、点击确定,ghost将自动将win7镜像到C盘;
步骤六、等待镜像完成后,计算机重新启动并开始运行安装win7过程。
windows 7之家的系统都是无人值守自动安装的,所以可以休息下,只要短短五分钟就可以完成win7的安装。
hustoj -- 请一定认真看完本页再动手安装,以免无谓的折腾!
根据你选择的发行版不同,从下面三个脚本里选一个来用。
不要相信百度来的长篇大论的所谓教程,那些都是好几年前的老皇历了,会导致不判题,不显示,不好升级等等问题。
尤其别装apache
近期github的svn访问缓慢,可以到release中下载tar.gz版本,然后用install目录下的*-bytgz.sh脚本安装。 但是注意这样安装的实例,将来升级时只能手工升级。
首先安装Ubuntu14.04(最稳定),然后用下面脚本快速安装OJ:
wget
sudo bash install-ubuntu14.04.sh
或者安装ubuntu16.04(拥有更新的编译器版本),然后用下面脚本快速安装OJ:
wget
sudo bash install-ubuntu16+.sh
发烧级用户ubuntu18.04(至少1年以上debian系Linux使用经验,欢迎帮忙踩坑测试,有问题会尽快修复)
wget
sudo bash install-ubuntu18.04.sh
假如你不得已非要用centos7 (有的语言可能不支持),可以用下面脚本快速安装OJ:
wget
sudo bash install-centos7.sh
安装完成,用admin作为用户名注册一个用户,自动成为管理员。
安装后几个重要配置文件的位置
/home/judge/etc/judge.conf
/home/judge/src/web/include/db_info.inc.php
/etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini
/etc/nginx/sites-enabled/default
如果用户量比较大,报50x错误,可能需要修改/etc/nginx/nginx.conf中的设置:
worker_processes 8; #其中数字8可以取CPU核心数的整数倍。
events {
worker_connections 2048;
multi_accept on;
}
如果遇到比赛人数多,比赛排名xls文件无法下载,请修改/etc/nginx/sites-enabled/default,在fastcgi_pass一行的后面增加
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
保存后,重启nginx
REDHAT / CENTOS 用户请浏览
docker安装,仅供docker熟练用户参考使用,假如你不知道什么是docker,请假装没看见这一段!
docker run -d -it \
-v /data/docker/docker-wxy/data:/data \
--privileged \
--name hustoj \
-p 80:80 shiningrise/hustoj:latest
docker测试安装
docker run -d -it --name hustoj -p 80:80 --privileged shiningrise/hustoj:latest
仅安装C++版本
docker run -d -it --name hustoj -p 80:80 --privileged shiningrise/hustoj:cpp
树莓派用户请用rpi分支源码(实验性质)手工搭建web,并编译安装core目录下的judged和judge_client。
更多安装方法
有问题请先查阅 FAQ 和 Wiki 或使用搜索引擎。
使用上需要帮助,请加用户交流QQ群23361372,仅支持开通支付功能的手机QQ加群,不接受其他方式加群。 群共享有题库 安装盘 文档 ,群内可以讨论 答疑 。 新加群,请改群名片,5分钟后可以发言 。 请尊重开源软件开发者的辛苦劳动,出言不逊者将被踢出,群费不退。
Linux不熟悉的用户推荐使用: HUSTOJ_LiveCD(关注微信公众号onlinejudge获得百度云下载链接)
HUSTOJ_Windows(仅支持XP,QQ群23361372共享文件)进行安装。
使用说明见iso中README,也可以参考LiveCD简介
Linux新手请看鸟哥的私房菜
建好系统需要题目,请访问TK题库 和 freeeproblemset项目
前台演示
常见问题自动应答微信公众号:hustoj
关注后回复: 新装系统、升级、目录等关键词,系统会自动回复相关帮助。
HUSTOJ is an GPL FreeSoftware?.
HUSTOJ 是采用GPL的自由软件。
注意:基于本项目源码从事科研、论文、系统开发,"最好"在文中或系统中表明来自于本项目的内容和创意,否则所有贡献者可能会鄙视你和你的项目。使用本项目源码和freeproblemset题库请尊重程序员职业和劳动。
论文请引用参考文献基于开放式云平台的开源在线评测系统设计与实现
如果打算进行二次开发,Wiki和这份文档可能有帮助。
(摘自github:网页链接
操作系统的选择
网站放在Linux或者Windows上其实问题都不大。但是鉴于,如果你的平台今后要拿出去办比赛等活动,那么一个正版的Windows商业授权是需要的。所以为了更加经济,选择Linux平台可能更好一点。
但是你的判题核心的部分一定要放到Linux环境下。一个,正式比赛的最终判题环境是Linux;二者,Windows上使用GCC系列的编译器毕竟和Linux下有不少的差距,最终可能会导致很多蛋疼的问题。
Web部分
这部分没啥好说的,基本上用啥都行,和普通的Web方案没啥区别。Django、ROR、.Net、J2EE、PHP等等,没什么特殊的地方。
判题节点
判题部分是整个OnlineJudge网站的核心所在。一般建议把判题部分单独抽出来成为一个服务,这样便于随时通过增加判题节点来加快判题的速度。
我们目前的思路是,Web端通过发送判题的请求给RabbitMQ等消息队列,每一个判题节点就是一个worker,这样可以非常简单的扩展判题节点的数量。
如果网站需要提供代理POJ、ZOJ、HDU等OJ的判题功能的话,可以同样的使用上述的思路,构建代理判题的节点,自由扩展。
判题核心
判题核心就是实际去编译、运行用户提交上来的代码的程序。可以成为一个sandbox沙盒。由于本人对Windows的API不是很懂,所以是在Linux上写的。安全性问题,可以参看这个回答Online Judge 是如何解决判题端安全性问题的?,基本思路都是这样。通过fork出另外一个进程,通过设置时间、内存等限制,通过ptrace进行监控,对系统调用进行限制,来解决安全性问题。
但是现在有一个新的思路,就是对判题核心很简单的运行用户的代码,计算时间、内存的使用量,把所有的安全性问题交给Docker来解决。因为Docker是一个非常轻量级的虚拟化方案,启动一个Docker容器就和启动一个程序一样快速,所以把判题核心的程序放到Docker里,就算用户代码搞破坏,最终挂掉的也就是Docker的容器。只要处理好和Docker的交互就可以了。但是这只是一个设想,还没有最终实现,还处于开发阶段,但是思想应该是可行的。