本来一直觉得没什么事情做,最近想了想还是学着写些网页吧,于是就打算用一些平台来学习web开发。想来想去还是研究一下OnlineJudge系统之类的网页。一方面自己之前经常使用,另一方面,觉得以后或许在当助教的过程中能用的到。于是找到了华中科技大学开源的一个OJ系统,据说很出名,但是搭建果断还是费了一点功夫的。
首先得找到正确的渠道,本来一直是在github上找的,然而找到后安装好了发现效果并不好,运行也特别的慢。后来发现了作者的博客 zhblue的博客,才知道原来github上的是个beta版的,稳定版的在googleCode上。(然而据说googlecode 就要关了,估计就要下不到了。。。)
把下载的文件包解压缩会的到这么多的文件:
1 | myths@Business:~/下载/install$ ls |
老规矩先看README,晓得文件的结构,然后看先install.sh(不要手残直接执行,,很多东西都要事先配置下的)
我们打开install.sh会看到开头的一段话:
1 | myths@Business:~/下载/install$ head install.sh |
这样我们就知道了,我们需要配置下judge.conf等的文件,来确保网页能访问到数据库,主要就是提供下数据库的用户名和密码。
还有就是默认的站点的位置,apache2默认应该是要放在/var/www/html下,改下就好了。
然后还要注意一点,就是我们会发现install.sh脚本里会执行其他的脚本,而执行的命令是:sudo ./make.sh
这样的。而事实上这谢文件又没有可执行的权限。想直接执行的需要用:sudo bash ./make.sh
才行。那么我们要做的就是要么修改脚本,要么给所有的.sh文件都赋予x权限。(之前没有注意到这个脚本没有得到执行,结果导致无法进行判题,后来手动执行了一下就好了)
最后直接install.sh即可,完美不报错,打开/JudgeOnline 目录可以看到已经搭建的网站了。
搭建完成后发现并不能直接用,因为没有设置管理员的权限,回头看下README,发现原来第一个管理员账户是要手动敲进数据库的:
1 | 注册用户 |
照着弄就好了,最后就可以进入/JudgeOnline/admin看到后台了。
另:这里还有一个坑,不知道什么原因,实验室的电脑能用svn下载评测机的内核,而服务器的电脑不能下载(日了狗了,明明hosts什么的都是一样的而且都是用的校园网)。。。而在install.sh中需要下载最新版本的内核,这导致了服务器上搭建的网站不能进行编译。。。这个问题最后通过将本地下载的最新内核上传上去解决的。。。也是醉了。。