0%

长大OJ诞生记(一)HUSTOJ搭建

OJ是跑在LAMP的环境中,Linux+Apache+Mysql+Php

搭建运行环境


Apache2

Apache用来解释html的请求。

1
$ apt-get install apache2

装好之后再浏览器中访问 http://localhost

看到如下页面就是正常工作了:

Apache正常工作

Apache2的配置信息在:

/etc/apache2

默认目录在:

/var/www/html

浏览器访问本台Ubuntu的时候就是读取这个目录下面的index.html网页

Mysql

1
$ apt-get install mysql-server mysql-client

安装过程中需要设置root账号的密码:

设置密码

装好之后,配置信息在:

/etc/mysql

可以测试一下mysql是否正常运行。

我上面设的密码是root,所以下面的指令就是:

1
$ mysql -uroot -proot

然后Mysql的默认字符集是latin1,中文可能会有乱码的情况,因此需要修改下字符集:

找到:

/etc/mysql/my.cnf

在最下面添加:

1
2
3
4
5
6
7
8
9
10
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

然后重启mysql:

1
$ /etc/init.d/mysql restart

重新打开mysql,输入

1
> show variables like 'char%';

出现:

编码

看到编码都是utf8就正常了

php5

安装php5以及Apache的php5模块

1
$ apt-get install php5 libapache2-mod-php5

装好之后重启apache,因为我们需要的是apache与php的连通

1
$ /etc/init.d/apache2 restart

然后测试一下php:

/var/www/html/

下新建 info.php 文件,内容只有一句:

1
<?php phpinfo() ?>

然后在浏览器中访问 http://localhost/info.php ,看到php版本信息即正常了

Apache2已经能够正常与php5进行通信了,但是mysql与php5之间连通还需要另外的模块:

1
$ apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

重启apache2,然后继续在

/var/www/html/

下新建 test.php 文件,内容是:

1
2
3
4
5
6
7
8
9
<?php
$link = mysql_connect("localhost", "root", "root");
if (!$link)
{
die('Could not connect: '.mysql_error());
}
else echo "MySQL连接成功";
mysql_close($link);
?>

访问 http://localhost/test.php

返回连接成功即可

另外也可以安装一下 phpmyadmin 来管理

svn、make、以及其他编译软件

1
$ apt-get install subversion make

然后根据需要安装好java、fpc等等编译器的包

Hustoj本体的安装

直接从github上把整个项目包checkout到本地

1
svn checkout https://github.com/zhblue/hustoj/trunk/trunk/install hustoj

修改 install.sh 以及 judge.conf 中数据库的账号和密码,前面设置的是root/root,刚好这里默认的就是root/root

然后运行 install.sh ,缺少的包会在安装时自己补上