Skip to content

How to Install BNUOJ

Ran Chen edited this page Nov 12, 2015 · 9 revisions

依赖

  • v1、v2、v3版web均需要PHP5以上版本(v1、v2已不再维护),并开启mysqlcurl支持。v3如果需要[tex]标签支持,需要tetex tetex-extra (或texlive) ghostscript imagemagick,如果打算使用此功能请在conn.php中注释掉latex_content($data)函数处理标签。
  • backend:libmysqlclient libpthread
  • judger: libpthread
  • vjudge: glib2.0 libre2 libcurl libjpeg libhtmlcxx libcrypto
  • 本地判题需要有相应环境,例如gcc openjdk fpc python
  • 编译backend与vjudge请安装相应库的dev包

编译安装

Web v3

  • bnuoj-web-v3项目clone出来git clone https://github.com/BNUACM/bnuoj-web-v3
  • 参考相关文档配置好nginx或其他Web容器(参考http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-lemp-on-debian-wheezy
  • 将相应文件复制到您的网页目录(一般为/var/wwwnginx默认为/usr/share/nginx/www)下
  • 安装composer:curl -sS https://getcomposer.org/installer | php
  • 安装依赖组件: php composer.phar install
  • 参照config.sample.php配置config.php,注意端口、验证字符串需要与dispatcher配置相同
  • 导入https://github.com/51isoft/bnuoj/blob/master/bnuoj-schema.sql到数据库

Backend/Dispatcher(Required)

Backend/Judger(Optional)

  • 本地判题需要此组件
  • 编译
  • git clone https://github.com/BNUACM/bnuoj-backend
  • cd bnuoj-backend/judger-v2
  • ./configure && make
  • 建立工作用户
  • 建立一个低权限的账户,UID填入config.ini中(替换1002)
  • 参照config.sample.ini配置config.ini,注意端口、验证字符串需要与dispatcher配置相同。

Vjudge(Optional)

  • 远程判题需要此组件
  • 编译
  • git clone https://github.com/BNUACM/bnuoj-vjudge
  • cd bnuoj-vjudge/vjudge-v2/
  • ./configure && make
  • 参照config.sample.ini配置config.ini,注意端口和验证字符串需要与dispatcher相同。
  • 通过config.ini中相应字段的有无可以开启/关闭相应的VJ,例如若其中有[PKU]字段则开启PKU的VJ,没有则关闭。
  • 每一VJ下可配置一个以上的帐号,以加快判题速度。

运行

  • 在相应目录下执行nohup ./src/dispatchernohup ./src/judgernohup ./src/vjudge启动dispatcher、judger和vjudge
  • 评测数据放在judger下的testdata目录,输入文件为.in,输出文件为.out,一一对应。special judge放在spj目录,请将所有者设置为root、权限设置为600以防泄漏

其他

感谢北师大ACM校队的所有队友们!没有他们的支持,这个OJ是肯定做不到现在这个程度。大家加油!

有任何疑问或者功能上的建议都欢迎在此提出,或者直接邮件联系我。