一起做OJ-环境搭建
这几天,看到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拥有足够权限,他就一定会运行,这个我们下期会重点讲
好吧,这期完了,我们下期再见
一起做OJ-环境搭建的更多相关文章
- 驱动开发 - WDK 调试及 SVN 环境搭建
由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了, 同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了, 而且其中还是有很多需要注意的地方的,所以在这里顺便做 ...
- 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~
一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...
- NLP中的用N-gram语言模型做英语完型填空的环境搭建
本文是对xing_NLP中的用N-gram语言模型做完型填空这样一个NLP项目环境搭建的一个说明,本来想写在README.md中.第一次用github中的wiki,想想尝试一下也不错,然而格式非常的混 ...
- 我用STM32MP1做了个疫情监控平台2—Qt环境搭建
目录 1.嵌入式Qt简介 2.查看开发板Qt库的版本 3.主机搭建Qt环境 4.第一个Qt程序--Hello World 5.一些问题 @ 1.嵌入式Qt简介 Qt 是一个跨平台的应用程序开发框架.使 ...
- eclipse项目环境搭建(做了好多遍,老是忘记,以此文帮助记忆)
今天把eclipse的环境搭建好(不能用myeclipse好忧伤). 要求: 1.在svn上管理项目,要下载svn插件. 2.是web所以要用到tomcat插件. 3.将项目运行起来. 流程: ecl ...
- [Android系列—] 1. Android 开发环境搭建与Hello World
前言 開始之前先熟悉几个名词: SDK -- Software Development Kit, 软件开发工具包.这个词并不陌生, JDK,就是Jave Development Kit,相同对于And ...
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...
- rnandroid环境搭建
react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...
- springMVC初探--环境搭建和第一个HelloWorld简单项目
注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...
随机推荐
- IOS初级:UIScrollView & UIPageControl
UIScrollView其实构建的就像一列很长的火车,每滑动一个屏幕,展示一节车厢. //主屏幕高度 #define kScreenHeight [UIScreen mainScreen].bound ...
- OneZero_Aphla发布总结以及自己的体会
Aphla发布正式结束了.清明时节,总要祭奠点什么. 以下是这一周的燃尽图. 可以发现,并没有燃尽.所以OneZero的Aphla发布失败了. 失败原因有至少以下三点: 1.组长分配任务存在隐患,高风 ...
- SLI的相关学习
今天帮人安装前年的机皇-微星GT80S的操作系统,安装好后用鲁大师测试下跑分,发现双显卡和单显卡鲁大师的跑分竟然一样,就像副显卡根本没有工作,听主人所这台机器能跑到36万以上. 然后就苦逼的尝试,把B ...
- HTML and CSS学习概述-续
1, CSS是层叠样式表(Cascading Style Sheets)的缩写,它用于定义HTML元素的显示形式,是一种格式化网页内容的技术.CSS现在已经被大多数浏览器所支持,成为网页设计者必须 ...
- Django框架之Ajax和form组件
一.Django框架之查漏补缺 1)models,字段概况 name = models.CharField(max_length=) age = models.IntegerField() price ...
- GUI的最终选择Tkinter模块练习篇
一.Canvas画布练习 1)简单的绘制图框 from tkinter import * # 构建一个窗口 tk = Tk() # 画布 canvas= Canvas(tk,width=,height ...
- python学习 day15 (3月20日)----time
# '2019-03-20 10:40:00'#这个时间向后推一个月 f1 = time.strptime('2019-03-20 10:40','%Y-%m-%d %H:%M') # 把字符串时间转 ...
- GOAP
市面上Unity人工智能的书籍基本上都是介绍这几个方面: AI角色的自主移动 --- 操控行为, 单体,小队,群体的行为. 我之前的文章 Unity Movement AI (一) , Unity M ...
- Quartz(强大的定时器)
1.关于Quartz的配置文件说明 # # Quartz会优先读取项目下我们自定义这个quartz.properties配置文件 否则会去读取quartzjar包下org.quatrz包# 下面的那个 ...
- centos 7 搭建pip源
一.安装pip2pi工具: pip install pip2pi 或编译: git clone https://github.com/wolever/pip2pi cd pip2pi python s ...