Centos上安装HustOJ的一些经历与碎碎念

  1. hustoj官方要求在Ubuntu x Apache环境下安装,在除此以外的一切环境里安装这个移植性极差的开源项目都是一件非常愚蠢的事情,除非你对当前环境非常熟悉或者想找虐,不要问我是怎么知道的(泣

  1. 安装apache:
    • 首先sudo yum install httpd -y 安装apache,如果没有sudo那就yum一个
    • 然后配置防火墙。这里我没怎么看懂,感觉应该是配错了,总之是要想办法让它不会ban掉80端口,网上找到的代码如下:sudo vim /etc/sysconfig/iptables进入文件后修改为
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT   //添加

 -A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

原理不明。vim的使用方法可以参见这里

  • 然后重启服务sudo service iptables restart
    • 然后为其添加主机名,但我觉得没啥必要,之后要用再百度
    • 输入ip,如果见到apache的欢迎页面就成功了

  1. 安装mysql:
    • 其实一般会自带mariadb,也挺好用的。实在想装或者特殊情况的话先检查有没有yum list installed | grep mysql,有的话先用yum -y remove +文件名移除
    • 安装命令yum -y install mysql-server
    • 启动之service mysqld start
    • 查看并修改为开机自启动
    chkconfig --list |grep mysqld
    
    chkconfig mysqld on
    
    • 安全设置mysql_secure_installation,之后看提示一步步做,千万别像教程那样直接一路enter到底

  1. 安装php
    • 同样可以先-v一下看看有没有装,没有的话直接yum
    • 装完之后记得重启一下httpd(也就是apache服务)服务,不然无法生效。装完写个info测试一下就知道了
    • 装完可能无法连接数据库,这个时候有两种可能,一种是这样,一种是这样

  1. 接下来就可以安装hustoj了。再次声明,有条件的话请务必在ubuntu下安装。如果必须在centos下安装,请参照教程进行手动安装
    • 安装教程:很详细,但是排版233和hustoj的wiki
    • 大致流程为,先将数据库按readme的要求建好,然后把web文件夹移动到网站根目录下的JudgeOnline文件夹,建议用cp而不是mv。对其进行配置,配置文件在include下的db_info_inc.php,记得vccode最好设置成false不然你会被根本不存在的验证码卡死。配置好之后进入其页面,注册一个账号,然后用sql语句将这个账号插入到管理员列表里面insert into privilege(user_id,rightstr) values(‘admin’,'admin’);,之后要么修改install.sh要么按照教程一步步用make.sh编译
    • 手动安装的话要注意一些点,比如judge文件夹里面的makefile,虽然教程有教怎么改,但是要注意库文件要按照自己的位置,有人是lib里面有人是lib64里面。至于我的在哪,我也不知道xd
    • 如果需要安装g++,不能直接yum,要yum install gcc-c++,不然yum找不到
    • 其他的......等我先装完再继续讲。我们赞美这位作者的开源,但是移植性真的很糟糕orz
    • 重启服务器,记得重启php-fpm,并且启动mariadb。至于为什么在这里提到这个.....自然是因为不得不回滚服务器了(死

未完待续

我最近好像写了很多次未完待续的样子XDDD

20180418更新

最后我还是屈服了,安装了ubuntu14后用官方脚本一键安装完成,一点问题都没有
centos下的编译总是有点问题,后台判题机的c源码每每在编译时报错:错误引用
233

你可能感兴趣的:(Centos上安装HustOJ的一些经历与碎碎念)