OJ是跑在LAMP的环境中,Linux+Apache+Mysql+Php
搭建运行环境
Apache2
Apache用来解释html的请求。
1 | $ apt-get install apache2 |
装好之后再浏览器中访问 http://localhost
看到如下页面就是正常工作了:
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 | [client] |
然后重启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 | 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 |
|
返回连接成功即可
另外也可以安装一下 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 ,缺少的包会在安装时自己补上