-
Notifications
You must be signed in to change notification settings - Fork 31
How to Install BNUOJ
Ran Chen edited this page Nov 12, 2015
·
9 revisions
- v1、v2、v3版web均需要
PHP5
以上版本(v1、v2已不再维护),并开启mysql
和curl
支持。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包
- 将
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/www
,nginx
默认为/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
到数据库
- 编译:
- git clone https://github.com/BNUACM/bnuoj-backend
- cd bnuoj-backend/dispatcher-v2
- ./configure && make
- 参照config.sample.ini配置config.ini
- 本地判题需要此组件
- 编译
- 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配置相同。
- 远程判题需要此组件
- 编译
- 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/dispatcher
、nohup ./src/judger
、nohup ./src/vjudge
启动dispatcher、judger和vjudge - 评测数据放在judger下的
testdata
目录,输入文件为.in,输出文件为.out,一一对应。special judge放在spj
目录,请将所有者设置为root、权限设置为600以防泄漏
感谢北师大ACM校队的所有队友们!没有他们的支持,这个OJ是肯定做不到现在这个程度。大家加油!
有任何疑问或者功能上的建议都欢迎在此提出,或者直接邮件联系我。