首先感謝阿里雲的雲翼計劃,9.9元一個月的服務器 雲翼計劃
我選擇的是32位ubuntu,看不到圖形界面會很煩,於是我安裝了一下vncserver VNC安裝說明,儘管沒有達到鏈接中圖示的效果,也勉強可以用了。
hustoj安裝步驟
1.安裝mysql
apt-get install mysql-server mysql-client
安裝的過程會有一個框,輸入sql密碼,按TAB切換到ok
2.安裝apache2
apt-get install apache2
這裏要說明一下的就是ubuntu下的apache默認網頁執行文件夾在/var/www/下面,配置文件在/etc/apache2/apache2.conf,配置文件子目錄在/etc/apache2/下
進入瀏覽器,鍵入http://localhost,出現It works!代表安裝成功
3.安裝php
apt-get install php5 libapache2-mod-php5
重啓apache,輸入/etc/init.d/apache2 restart
安裝文本編輯器gedit
apt-get install gedit
然後打開,輸入一下內容
<?php phpinfo();?>
另存爲/var/www/html/info.php
然後在瀏覽器輸入
http://localhost/info.php
出現php的一系列屬性,LAMP環境就完成了。
4.安裝hustoj
執行如下命令
sudo apt-get update
sudo apt-get install subversion
sudo svn co https://github.com/zhblue/hustoj/trunk/trunk/install hustoj
cd hustoj
sudo bash install-interactive.sh
這個是github上最新的源,因爲google code被牆了,所以遷移到了github上。
安裝完之後只能編譯C和C++,有需要pascal和java可以執行這兩條命令
hustoj安裝完默認只能判c和c++代碼
sudo apt-get install openjdk-6-jdk
sudo apt-get install fpc
5.運行JudgeOnline
輸入
http://localhost/JudgeOnline
或者http://127.0.0.1/JudgeOnline即可
如果出現類似這樣的問題,應該是數據庫沒連接上
Could not connect: Access denied for user 'root'@'localhost'(using password: YES)
數據庫的配置文件在var/www/html/judgeonline/include中的db_info.inc.php
使用gedit打開修改就好,db_info.inc.php的具體分析見文章最後。
6.註冊帳號測試admin功能
比如說我註冊的帳號叫 admin
第一步,終端進入 輸入sudo su 輸密碼
第二步 輸入 mysql –u root –p 回車
然後輸密碼 進入mysql
第三步 輸入 show databases;查看所有數據庫
第四步, 輸入 use jol;(hustoj用戶數據庫) 要想進去的話就輸入select * from jol;
第五步 輸入
insert into privilege(user_id,rightstr)values('admin','administrator');
如果你的帳號叫zhangkun,那麼需要更改帳號部分,如
insert into privilege(user_id,rightstr)values('zhangkun','administrator');
最後域名如果有可以是用自己的域名,我使用的是tk域名,dot.tk,將域名解析到雲服務器上就好。
歡迎測試我搭建的hustoj,雖然是老東西了,還是能用一用,有些地方還需要更改,多謝指正。點擊打開OJ
db_info.inc.php
static $DB_HOST="localhost"; 數據庫的服務器地址
static $DB_NAME="jol"; 數據庫名
static $DB_USER="root"; 數據庫用戶名
static $DB_PASS="root"; 數據庫密碼
// connect db
static $OJ_NAME="HUSTOJ"; OJ的名字,將取代頁面標題等位置HUSTOJ字樣。
static $OJ_HOME="./"; OJ的首頁地址
static $OJ_ADMIN="root@localhost"; 管理員email
static $OJ_DATA="/home/judge/data"; 測試數據所在目錄,實際位置。
static $OJ_BBS="discuss";//"bbs" 論壇的形式,discuss爲自帶的簡單論壇,bbs爲外掛論壇,參考bbs.php代碼。
static $OJ_ONLINE=false; 是否使用在線監控,需要消耗一定的內存和計算,因此如果併發大建議關閉
static $OJ_LANG="en"; 默認的語言,中文爲cn
static $OJ_SIM=true; 是否顯示相似度檢測的結果。
static $OJ_DICT=true; 是否啓用在線英字典
static $OJ_LANGMASK=1008; //1mC 2mCPP 4mPascal 8mJava 16mRuby 32mBash 1008 for security reason to mask all other language 用掩碼錶示的OJ接受的提交語言,可以被比賽設定覆蓋。
static $OJ_EDITE_AREA=true;// 是否啓用高亮語法顯示的提交界面,可以在線編程,無須IDE。
static $OJ_AUTO_SHARE=false;//true: 自動分享代碼,啓用的話,做出一道題就可以在該題的Status中看其他人的答案。
static $OJ_CSS="hoj.css"; 默認的css,可以選擇dark.css和gcode.css,具有有限的界面制定效果。
static $OJ_SAE=false; //是否是在新浪的雲平臺運行web部分
static $OJ_VCODE=true; 是否啓用圖形登錄、註冊驗證碼。
static $OJ_APPENDCODE=false; 是否啓用自動添加代碼,啓用的話,提交時會參考$OJ_DATA對應目錄裏是否有append.c一類的文件,有的話會把其中代碼附加到對應語言的答案之後,巧妙使用可以指定main函數而要求學生編寫main部分調用的函數。
static $OJ_MEMCACHE=false;是否使用memcache作爲頁面緩存,如果不啓用則用/cache目錄
static $OJ_MEMSERVER="127.0.0.1"; memcached的服務器地址
static $OJ_MEMPORT=11211; memcached的端口