校園網搭建HUSTOJ記錄

上學期和網管中心的老師說過很多次——要在校園網上搭OJ,當時那邊老師說要等“虛擬化搞好了以後才能搭”。直到上週,終於在校園網上申請到了一個虛擬主機,4核,10G內存,100G硬盤,跑個OJ應該沒問題。

剛開始準備給分個公網IP的,最後分了個內網的IP,T^T

ssh剛登上,就準備換soures.list,換好163的源之後,apt-get update總是失敗,很鬱悶,又換回去,結果還是不行。

一ping才知道,外網全部ping不通。沒轍,當時想到的就是把軟件包全下載到自己機器,在一個一個用scp複製到server上,結果一個apache搞了一下午沒裝好,一層又一層的依賴,很頭疼。臨回去找到一種方法——局域網軟件源。試了一下,本地apt-get install了一個git,server上果然能裝上。當時很開心~

結果install apache2時,依賴的庫沒了,被我之前clean掉了,傷心。

第一天結束,回去把自己機子上ubuntu重裝了一下。

內網軟件源配置

主機部分

  1. 首先把主機給升級一下

#apt-getupdate(注意我這是直接超級用戶下,因爲平時只是做做測試,所以喜歡方便)

#apt-getupgrade

等待完成之後

/var/cache/apt/archives裏面保留了這些更新文件


  1. 安裝dpkg-dev

#apt-getinstall dpkg-dev


  1. 安裝apache2

#apt-getinstall apache2


  1. 新建4個目錄

#mkdir/var/www/soft(存放安裝文件)

#mkdir/var/www/dists

#mkdir/var/www/dists/lucid

#mkdir/var/www/dists/lucid/main

#mkdir/var/www/dists/lucid/main/binary-i386


  1. /var/cache/apt/archives/目錄下的文件拷貝至/var/www/soft/目錄下

#cp/var/cache/apt/archives/* /var/www/soft


  1. 進入/var/www/目錄下開始打包

#cd/var/www/

#dpkg-scanpackagessoft/ /dev/null | gzip>/var/www/dists/lucid/main/binary-i386/Packages.gz


客戶機

  1. 修改/etc/apt/source.list內容

  1. 刪除原有內容

  2. 添加內容debhttp://192.168.6.16 lucid mian

  3. 6.16是我的主機IP

  1. 開始更新

#apt-getupdate

#apt-getupgrade


第二天。重裝的ubuntu,之前裝的軟件全沒了....

先裝了svn,check代碼:

svn checkout http://hustoj.googlecode.com/svn/tags/1.2rc/ hustoj1.2

check號代碼,壓縮,準備scp到server上:

tar -czvf hustoj1.2.tar.gz hustoj1.2
scp hustoj1.2.tar.gz xxx@xxx

server終端上:

tar -xzvf hustoj1.2.tar.gz

本機上先install一下HUSTOJ依賴的軟件:

sudo apt-get install flex g++ libmysql++-dev php5 apache2 mysql-server php5-mysql php5-gd php5-cli mono-gmcs subversion

其實不install也行,apt-get download就可以了。只是爲了讓這些軟件和它們依賴的軟件被下載到/var/cache/apt/archives
接下來又用上面的方法,結果在server上不行,apt-get install老是失敗,鬱悶。

加了個-f選項突然可以了。apt-get install -f xxx

要改代碼的地方:

install/judge.conf數據庫帳號&密碼,找php頁面上的數據庫帳號&密碼:

cd web
grep -n -R "\"root\"" *

找到文件和行數,server上修改之,再cp到/var/www下。

懷着激動的心情,打開我的瀏覽器,server IP打進去,“It works”

OJ目錄加上,什麼都沒有!再打開一遍,還是神碼都沒有!

baidu,google搜“php 代碼調試”(java web還略懂一點,php完全不會啊),server上要看error.log,狂搜:

tree -i -f / | grep error.log
找到之後,打開,看到了“Call to undefined function mysql_pconnect() in /var/www/OJ/includ    e/db_info.inc.php on line 36”,數據庫驅動沒有加

改php.ini:

tree -i -f / | grep php.ini
取消註釋行 extension=mysql.so

重啓apache:

apache2ctl restart
再次瀏覽,成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章