一起做OJ-环境搭建

2019-04-26 08:22:41来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

这几天,看到OJ火了起来,尤其是OnlineJudge(QingDaoU)和HUSTOJ。

作为正在花大力研究PHP和Bootstrap的我,看到了,当然不会甘心。

于是,我决定把学到的知识用在编写OJ上。

我选择了腾讯云买的美国VPS,这样不用备案。

首先,我一下这次的大概架构:

用户登录(MySQL储存用户信息)->获取题目(MySQL的"SELECT * FROM ... WHERE 1")->做题(在线解释器,使用MinGW正好符合要求,有需求也可以使用python连接MySQL进行脚本判题)

 

好吧,我承认话说多了,那么先开始搭建环境吧

一、PHP环境(建议使用PHP7.1)

注意,虽然宝塔面板安装PHP蛮简单,但是fopen要注意不能在配置(php.ini)中出现于disabled_function里,不然会throw一个Error

如果你没有用宝塔面板,也可以自己搭建PHP。

二、MySQL环境(建议使用5.7)

也是没什么好说的,但是千万记住root密码,不然你会后悔的,都是教训啊:-(

三、Apache环境(建议2.4)

但是你用2.2其实没什么大问题,但是可能和PHP的兼容性不太好

 

现在测试一下你的PHP环境吧

 把这些代码复制到index.php里,然后访问localhost试试

<?php
echo '<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>恭喜,站点创建成功!</title>
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="//cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container" style="margin-top:9%;">
<div class="jumbotron">
<div class="panel panel-success">
<div class="panel-heading"><h1>恭喜, 站点创建成功!</h1></div>
</div>
<p><h3>站点创建成功,本页面由系统自动生成。</h3></p>
<p><li>本页面在FTP根目录下的index.html</li></p>
<p><li>您可以删除或覆盖本页面</li></p>
<p><li>FTP相关信息,请到软件后台查看</li></p>
<p><li>我们为您提供了完善的数据备份功能,请到后台进行相关设置</li></p>
</div>
</div>
</body>
</html>';
?>

如果有这个:

说明环境搭建成功了

那么,第一大块搞定

 

但是,下面的第二大块小编也觉得很烧脑

因为,需要引入Python解释器和MinGW的解释器,但是前面的test中发现,Php调用MinGW无法编译,不知道为什么

所以,需要借助外部Python脚本进行编译

 因为Python的os.system很可靠,只要python拥有足够权限,他就一定会运行,这个我们下期会重点讲

好吧,这期完了,我们下期再见


原文链接:https://www.cnblogs.com/sheng-fan/p/MakeOJ_001.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何判断php中的请求是ajax请求还是普通请求

下一篇:PHP实现部分字符隐藏