Centos7搭建hustoj全流程

开源的OJ:https://github.com/zhblue/hustoj
适合和我一样从零开始的萌新搭建
建议ubuntu直接脚本一键部署
若是和我一直实验室服务器只是Centos7的话可以看看我的搭建过程

脚本安装失败,只能转为人工搭建了
但是最好还是先执行一下install-centos7
也方便之后的搭建

首先搭建的是LNMP(linux,nginx,mysql,PHP)环境,最好还是自己搭建,一开始利用宝塔的一键部署发现搭不了,后来还要花时间去卸载。

具体过程网上很多,基本可以直接yum install xxx

脚本运行完后应该会在/home里有一个judged用户

首先先把/home/judge/src下的web文件夹移到nginx的/usr/local/nginx/html目录下
在这里插入图片描述
然后就是配置nginx环境了
打开/usr/local/nginx/conf 里的 nginx.conf文件
找到里面的server
listen口是选择从哪个端口进入
一般默认是:80
这样可以直接用网址登录
若是改了x
登录URL就需要改成网址:x

如果之前有搞过apache的话可以先
lsof -i :x
看一下端口有无占用
没什么用的直接kill -i x杀掉进程
有用就换一个端口

    server {
        listen       80;
        server_name  localhost;
        autoindex on;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;


        }

root就是在nginx文件中的地址
这里我把hustoj的web放在了 …nginx/html/web里面

     location / {
            root   html/web;
            index  index.html index.htm index.php;
        }

php-fpm的配置文件,当nginx识别到php文件时需要传给php-fpm让其处理


        location ~ \.php$ {
            root   html/web;
            fastcgi_pass   127.0.0.1:9000;           #fastcgi服务端口,将http请求代理到此端口
            fastcgi_index  index.php;                    #fastcgi服务默认页面
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    #设置请求的脚本文件路径
            include        fastcgi_params;        
}

加起来就是


    server {
        listen       80;
        server_name  localhost;
        autoindex on;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html/web;
            index  index.html index.htm index.php;
 
        }

        location ~ \.php$ {
            root   html/web;
            fastcgi_pass   127.0.0.1:9000;           #fastcgi服务端口,将http请求代理到此端口
            fastcgi_index  index.php;                    #fastcgi服务默认页面
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    #设置请求的脚本文件路径
            include        fastcgi_params;        
        }

然后web的配置见文件也要看情况修改
打开/usr/local/nginx/html/web/include 下的 db_info.inc.php文件

static 	$DB_HOST="localhost";  //数据库服务器ip或域名
static 	$DB_NAME="jol";   //数据库名
static 	$DB_USER="root";  //数据库账户
static 	$DB_PASS="123456";  //数据库密码

这里就需要你提前配置数据库了
mysql -u root -p
输入密码
这里我的密码是123456
也可以mysql -u root -p123456 (密码必须紧跟-p)
直接进入
然后 SHOW DATABASES; (注意有分号)
脚本运行成功的话会有jol这个数据库的
在这里插入图片描述
如果没有就自己建一个呗
CREATE DATABASE jol;

最后记得刷新一下nginx,php和mysql
systemctl restart nginx.service
systemctl restart php.service
systemctl restart mysqld.service

到这里如果一切成功的话登录服务器主机号应该是可以成功显示出页面的,如果不行可以底下留言一起讨论
在这里插入图片描述
反正我是又改改弄弄才成功,这里如果没成功可以打开db_info.inc.php文件里面第二行

//ini_set(“display_errors”, “Off”); //set this to “On” for debugging ,especially when no reason blank shows up.
其实可以根据英文猜出就是用来显示错误信息的
作用可以等同于把 /etc下的php.ini中的display_errors=Off改成 On

想简单一点就直接将注释取消,把Off改成On就可以看错误信息,warning的都无所谓主要看那个重大错误就行
我遇到问题的其实就是删除一个函数就行,直接百度一下报错信息基本都可以解决

然后就是judged了
首先肯定是judged的配置文件
打开/home/judge/etc 中 judge.conf 文件
将数据库什么的改成跟 db_info.inc.php 中的一样

OJ_HOST_NAME=127.0.0.1
OJ_USER_NAME=root
OJ_PASSWORD=123456
OJ_DB_NAME=jol
OJ_PORT_NUMBER=3306

然后将OJ_RUNNING改成4

#CPU cores Config
OJ_RUNNING=4

最后也要杀死进程再重启
kill -9 judged
sudo judged

这样hustoj应该就可以运行了
最后别忘了更新一下系统
sudo bash /home/judge/src/install/update-hustoj

最后也是分享一下我这几天常用的命令把
cd xxx跳转
ls 显示你可以cd的目录
kill 杀死进程
lsof -i :x 查看端口x的使用情况
rm x 删除文件
cp和mv差不多,一个直接移动,一个复制过去

常用的就这么多,希望我的教程能帮助更多和我一样的萌新

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值