任丘做网站价格,阿里巴巴官网,学网络工程师,网站 模板服务器配置需求
阿里云 腾讯云 华为云均可#xff0c;腾讯云目前是最合适的。
腾讯云 2H4G 5M 60GB 轻量应用服务器 承载大约 200~400人使用#xff0c;经过压力测试#xff0c;评测并发速度可满足130人左右的在线比赛。 镜像选Ubuntu22.04LTS#xff0c;物理机安装Ubun…服务器配置需求
阿里云 腾讯云 华为云均可腾讯云目前是最合适的。
腾讯云 2H4G 5M 60GB 轻量应用服务器 承载大约 200~400人使用经过压力测试评测并发速度可满足130人左右的在线比赛。 镜像选Ubuntu22.04LTS物理机安装Ubuntu22.04 Server。
购买链接如下
【腾讯云】2核2G3M云服务器7.92元/月起2000元代金券免费领 云服务器购买成功后通过扫码识别登录云控制台 点击 更多—查看详情 点击 登录 打开 一键登录 窗口 即可在命令行下执行操作 命令前 加入 sudo 一、hustoj部署
ubuntu系统安装 第一步
cd /home sudo wget http://dl.hustoj.com/install.sh 第二步 sudo bash install.sh centos系统安装
先上传install-centos7.sh 到home目录下
cd /home sudo wget http://dl.hustoj.com/install-centos7.sh sudo bash install-centos7.sh 出现账号和密码。复制记下来后面要用。
在浏览器里面访问云服务器公网地址例如101.34.59.x 或者局域网ip地址 例如192.168.1.x 局域网虚拟机部署就可以看到主页了。
注册后台管理员
用户名使用 admin。其他按照要求填就行。这个就是管理员账号。
二、hustoj配置 1.大部分功能和选项的开关和参数调整都在配置文件中安装后几个重要配置文件的位置如下
/home/judge/etc/judge.conf #判题judged/judge_client /home/judge/src/web/include/db_info.inc.php #Web /etc/php5/fpm/php.ini 或 /etc/php7.0/fpm/php.ini 或 /etc/php.ini(in Centos7) #php /etc/nginx/sites-enabled/default 或 /etc/nginx/nginx.conf(in Centos7) #nginx HUSTOJ的两个重要配置文件(judge.conf和db_info.inc.php)互相独立分别供core和web使用。
core(judged/judge_client)使用的配置文件是judge.conf内容如下:
OJ_HOST_NAME127.0.0.1 #用mysql连接读取数据库数据库的主机地址
OJ_USER_NAMEdebian-sys-maint #数据库帐号
OJ_PASSWORDCM172iAvF10lrrKr #数据库密码
OJ_DB_NAMEjol #数据库名称
OJ_PORT_NUMBER3306 #数据库端口
OJ_RUNNING4 #judged会启动judge_client判题这里规定最多同时运行几个judge_client
OJ_SLEEP_TIME5 #judged通过轮询数据库发现新任务轮询间隔的休息时间单位秒
OJ_TOTAL1 #老式并发处理中总的judged数量
OJ_MOD0 #老式并发处理中本judged负责处理solution_id按照TOTAL取模后余数为几的任务。
OJ_JAVA_TIME_BONUS2 #Java等虚拟机语言获得的额外运行时间
OJ_JAVA_MEMORY_BONUS64 #Java等虚拟机语言获得的额外内存
OJ_JAVA_XMS-Xms64M
OJ_JAVA_XMX-Xmx128M
OJ_SIM_ENABLE0 #//是否开启代码相似度比对开启这个并且同时开启db_info.inc.php中static $OJ_SIMfalse才能启用OJ查重
OJ_HTTP_JUDGE0 #是否使用HTTP方式连接数据库如果启用则前面的HOST_NAME等设置忽略
OJ_HTTP_BASEURLhttp://127.0.0.1/JudgeOnline #使用HTTP方式连接数据库的基础地址就是OJ的首页地址
OJ_HTTP_USERNAMEadmin #使用HTTP方式所用的用户帐号(HTTP_JUDGE权限)该帐号登录时不能启用VCODE图形验证码但可以登录成功后启用。
OJ_HTTP_PASSWORDadmin #使用HTTP方式所用的用户密码
OJ_REDISENABLE0
OJ_REDISSERVER127.0.0.1
OJ_REDISPORT6379
OJ_REDISAUTH123456
OJ_REDISQNAMEhustoj
OJ_OI_MODE1 #是否启用OI(信息学奥林匹克竞赛)模式即无论是否出错都继续判剩余的数据在ACM比赛中一旦出错就停止运行。
OJ_SHM_RUN1 #是否使用/dev/shm的共享内存虚拟磁盘来运行答案如果启用能提高判题速度但需要较多内存。
OJ_USE_MAX_TIME1 #是否使用所有测试数据中最大的运行时间作为最后运行时间如果不启用则以所有测试数据的总时间作为超时判断依据
OJ_LANG_SET0,1,2,3,4,5,6,7,8,9,10,11 #判题机评测语言即C、C、Java、Python......
OJ_COMPILE_CHROOT0
OJ_TURBO_MODE0
OJ_CPU_COMPENSATION0.88
OJ_UDP_ENABLE1
OJ_UDP_SERVER127.0.0.1
OJ_UDP_PORT1536 注意core没有识别引号和注释的能力所以不要自行增加任何引号或注释否则可能影响judged的启动上面的解释仅做阅读不能放入配置文件。 web端使用的配置文件是db_info.inc.php内容如下
static $DB_HOSTlocalhost; //数据库服务器ip或域名
static $DB_NAMEjol; //数据库名
static $DB_USERdebian-sys-maint; //数据库账户
static $DB_PASSCM172iAvF10lrrKr; //数据库密码
static $OJ_NAMEHUSTOJ; //左上角显示的系统名称
static $OJ_HOME./; //主页目录
static $OJ_ADMINrootlocalhost; //管理员email
static $OJ_DATA/home/judge/data; //测试数据目录
static $OJ_BBSfalse;//bbs for phpBB3 bridge or discuss for mini-forum or false for close any
static $OJ_ONLINEfalse; //是否记录在线情况
static $OJ_LANGen; //默认语言
static $OJ_SIMfalse; //显示相似度
static $OJ_DICTfalse; //显示在线翻译
static $OJ_LANGMASK0; //1mC 2mCPP 4mPascal 8mJava 16mRuby 32mBash 1008 for security reason to mask all other language
static $OJ_EDITE_AREAtrue;//true: syntax highlighting is active
static $OJ_ACE_EDITORtrue;
static $OJ_AUTO_SHAREfalse;//true: One can view all AC submit if he/she has ACed it onece.
static $OJ_CSSwhite.css;
static $OJ_SAEfalse; //using sina application engine
static $OJ_VCODEfalse; //验证码
static $OJ_APPENDCODEfalse; // 代码预定模板
static $OJ_CE_PENALTYfalse; // 编译错误是否罚时
static $OJ_PRINTERfalse; //启用打印服务
static $OJ_MAILfalse; //内邮
static $OJ_MARKmark; // mark for right percent for WA
static $OJ_MEMCACHEfalse; //使用内存缓存
static $OJ_MEMSERVER127.0.0.1;
static $OJ_MEMPORT11211;
static $OJ_UDPtrue; //使用UDP通知
static $OJ_UDPSERVER127.0.0.1;
static $OJ_UDPPORT1536;
static $OJ_REDISfalse; //使用REDIS队列
static $OJ_REDISSERVER127.0.0.1;
static $OJ_REDISPORT6379;
static $OJ_REDISQNAMEhustoj;
static $SAE_STORAGE_ROOThttp://hustoj-web.stor.sinaapp.com/;
static $OJ_CDN_URL; // http://cdn.hustoj.com/ https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/web/
static $OJ_TEMPLATEbs3; //使用的默认模板, [bs3 ie ace sweet sae] work with discuss3, [classic bs] work with discuss
//if(isset($_GET[tp])) $OJ_TEMPLATE$_GET[tp];
static $OJ_LOGIN_MODhustoj;
static $OJ_REGISTERtrue; //允许注册新用户
static $OJ_REG_NEED_CONFIRMfalse; //新注册用户需要审核
static $OJ_NEED_LOGINfalse; //需要登录才能访问
static $OJ_RANK_LOCK_PERCENT0; //比赛封榜时间比例
static $OJ_SHOW_DIFFfalse; //是否显示WA的对比说明
static $OJ_TEST_RUNfalse; //提交界面是否允许测试运行
static $OJ_BLOCKLYfalse; //是否启用Blockly界面
static $OJ_ENCODE_SUBMITfalse; //是否启用base64编码提交的功能用来回避WAF防火墙误拦截。
static $OJ_OI_1_SOLUTION_ONLYfalse; //比赛是否采用noip中的仅保留最后一次提交的规则。true则在新提交发生时将本场比赛该题老的提交计入练习。
static $OJ_OI_MODEfalse;//是否开启OI比赛模式禁用排名、状态、统计、用户信息、内邮、论坛等。
static $OJ_SHOW_METALtrue;//榜单上是否按比例显示奖牌
static $OJ_RANK_LOCK_DELAY3600;//赛后封榜持续时间单位秒。根据实际情况调整在闭幕式颁奖结束后设为0即可立即解封。
static $OJ_BENCHMARK_MODEfalse; //此选项将影响代码提交不再有提交间隔限制提交后会返回solution id//static $OJ_EXAM_CONTEST_ID1000; // 启用考试状态填写考试比赛ID
//static $OJ_ON_SITE_CONTEST_ID1000; //启用现场赛状态填写现场赛比赛ID
/* share code */
static $OJ_SHARE_CODE false; // 代码分享功能
/* recent contest */
static $OJ_RECENT_CONTEST false;// http://algcontest.rainng.com/contests.json ; // 名校联赛
//$OJ_ON_SITE_TEAM_TOTAL用于根据比例的计算奖牌的队伍总数
//CCPC比赛的一种做法是比赛结束后导出终榜看AC至少1题的不打星的队伍数现场修改此值即可正确计算奖牌
//0表示根据榜单上的出现的队伍总数计算(包含了AC0题的队伍和打星队伍)
static $OJ_ON_SITE_TEAM_TOTAL0;
2.如果用户量比较大报50X错误,可能需要修改/etc/nginx/nginx.conf中的设置
worker_processes 8; #其中数字8可以取CPU核心数的整数倍。
events {worker_connections 2048;multi_accept on;
}
3.如果遇到比赛人数多比赛排名xls文件无法下载请修改/etc/nginx/sites-enabled/default, 在fastcgi_pass一行的后面增加:
fastcgi_buffer_size 128k;
fastcgi_buffers 32 32k;
4.保存后重启nginx: /usr/sbin/nginx -s reload 三、HUSTOJ的备份与恢复 1.备份 脚本安装的用户可以使用install目录中的bak.sh进行备份:
sudo bash /home/judge/src/install/bak.sh
2.恢复 如果要恢复我们需要找到备份的两个压缩包db_xxxxxxxx.sql.bz2和hustoj_xxxxxxxx.tar.bz2首先我们将其解压缩
tar -jxvf hustoj_20191116.tar.bz2 bzip2 -d db_20191116.sql.bz2 我们解压缩之后会有两个目录(home/、var/)和一个数据库文件(db_xxxxxxxx.sql)。其中home里面存放的是一些数据而var里面存放的和上面一样是db_xxxxxxxx.sql.bz2数据库文件。 然后我们就进入新搭建好的HUSTOJ的数据库将备份的数据库导入进去
sudo mysql -u root -p -A #登录mysql这里的root根据你judge.conf而定接着输入密码 use jol; #进入jol数据库 source /var/backups/db_xxxxxxxx.sql #旧OJ的sql文件路径 最后把home/judge文件夹上传覆盖即可。
四、HUSTOJ的升级 脚本安装的用户可以使用install目录中的update-hustoj进行升级。
sudo bash /home/judge/src/install/update-hustoj 升级脚本执行后可能需要登陆web端管理后台执行一次更新数据库。 五、HUSTOJ的修复 自己不小心改坏了web代码可以使用install目录中的fixing.sh进行系统修复。
sudo bash /home/judge/src/install/fixing.sh 六、HUSTOJ的美化 1.首先就是OJ最下面的那两个二维码广告
(1).我们可以通过修改/home/judge/src/web/template/bs3/js.php文件来去除
sudo vim /home/judge/src/web/template/bs3/js.php #或者 #cd /home/judge/src/web/template/bs3/ #sudo vim js.php (2).找到这两行将其注释或删除(注释//or/* */)
$(body).append(div idfooter classcenter GPLv2 licensed by a hrefhttps://github.com/zhblue/hustoj HUSTOJ/a (new Date()).getFullYear() /div); $(body).append(div classcenter img srchttp://hustoj.com/wx.jpg width120pximg srchttp://hustoj.com/alipay.png width120pxbr 欢迎关注微信公众号onlinejudge/div); (3).保存退出:wq刷新网页然后我们就可以看到广告消失了。
2.至于上面的广告就是公告了进入后台管理把公告删除就行了。
3.当我们发个新闻新闻的下面会显示
(1).这个我们可以在/home/judge/src/web/index.php:
vim /home/judge/src/web/index.php (2).在里面找到:
$view_news . /div; $view_news . div classpanel-footer请到a target_blank hrefhttps://github.com/zhblue/hustoj GitHub/a来给我们加个星星nbsp;Please give us a star on a target_bla nk hrefhttps://github.com/zhblue/hustojGithub/a!/div; $view_news . /div; (3).将其注释掉或删除。
(4).如果你想去掉新闻标题后面的小尾巴:
(5).我们同样是在index.php文件中修改
sudo vim /home/judge/src/web/index.php (6).在里面找到
$view_news . div classpanel-headingbig . $row[ title ] . /*/big-small . $row[ user_id ] .*/ /small/div; (7).将/big-small . $row[ user_id ] .注释或删除掉
4.OJ的评测结果默认是在后面加上一个分数的例如Accepted100。 (1).如果想要去掉这个分数我们只需要在/home/judge/src/web/status.php中找到(大概在295行左右):
$view_status[$i][3]. $mark/a; (2).将其注释或删除掉就行了
七、导入题库
后台导入问题失败 1、先用谷歌浏览器直接打开xml文件看是否有语法错误如果有用文本编辑器修订提示的行号。 2、如果超过100M,可以先用EasyFPSViewer拆分成多个小文件然后再导入。 3、对于HUSTOJ可以先压缩为zip再上传导入 4、修改/etc/php/7.2/fpm/php.ini, 提高post_max_size、upload_max_filesize 、memory_limit、max_execution_time 的值。修改后执行sudo service php7.2-fpm restart生效。