校园网搭建HUSTOJ记录
刚开始准备给分个公网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重装了一下。
内网软件源配置
主机部分
-
首先把主机给升级一下
#apt-getupdate(注意我这是直接超级用户下,因为平时只是做做测试,所以喜欢方便)
#apt-getupgrade
等待完成之后
在/var/cache/apt/archives里面保留了这些更新文件
-
安装dpkg-dev
#apt-getinstall dpkg-dev
-
安装apache2
#apt-getinstall apache2
-
新建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
-
把/var/cache/apt/archives/目录下的文件拷贝至/var/www/soft/目录下
#cp/var/cache/apt/archives/* /var/www/soft
-
进入/var/www/目录下开始打包
#cd/var/www/
#dpkg-scanpackagessoft/ /dev/null | gzip>/var/www/dists/lucid/main/binary-i386/Packages.gz
客户机
-
修改/etc/apt/source.list内容
-
删除原有内容
-
添加内容debhttp://192.168.6.16 lucid mian
-
6.16是我的主机IP
-
开始更新
#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再次浏览,成功!