hustoj安装在阿里云,现在需要备份到本地。记录一下处理过程。
第一步,在阿里云服务器上打包data文件夹(评测数据),以及upload文件夹(图片)和bs3文件夹(模板),导出数据库信息。
1.压缩data文件夹:
tar -zcvf data.tar.gz data
其他文件夹类似,data比较大,压缩后有5.4G。
2.导出数据库信息:wget phpMyAdmin下载地址。登录数据库,导出jol数据库。
第二步,本地(Win10)在虚拟机中安装Ubuntu16.04 Server,并搭建hustoj。
1.在VirtualBox5.2.32版本中安装Ubuntu虚拟机,并安装hustoj。
wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-ubuntu16+.sh
sudo bash install-ubuntu16+.sh
第三步,设置VirtualBox中的虚拟机和Win10系统实现文件共享。
1.在VirtualBox“共享文件夹”处设置好一个文件夹(名称为:Share),并勾选“自动挂载”(Ubuntu开机前)。
2.在Ubuntu系统中做如下设置。
2.1)安装VirtualBox驱动:
sudo apt-get install virtualbox-guest-utils
2.2)安装增强功能:
安装依赖工具:
sudo apt-get install dkms
sudo apt-get install build-essential
2.3)重启
2.4)在VirtualBox菜单栏点击“安装增强功能”。
2.5)挂载cdrom:
sudo mount /dev/cdrom /mnt/
2.6)执行安装命令:
sudo /mnt/VBoxLinuxAdditions.run
2.7)卸载:
sudo umount /mnt/
3.Ubuntu中创建共享文件夹:
sudo /mnt/file
4.将Share和file进行关联:
sudo mount -t vboxsf Share /mnt/file
以上设置之后,就可以在Ubuntu系统中的file文件夹共享Win10系统中Share文件夹的文件了。
第四步,更新hustoj数据。
1.将第一步操作中备份好数据拷贝到对应位置。
将data.tar.gz等文件拷贝到Share文件夹,然后再在Ubuntu系统中拷贝到对应位置,并解压。
sudo cp /mnt/file/data.tar.gz /home/judge/
sudo cp /mnt/file/upload.tar.gz /home/judge/src/web/
sudo cp /mnt/file/bs3.tar.gz /home/judge/src/web/template
2.删除原来的文件夹,并解压对应的文件。
sudo rm -rf data
tar -zxvf data.tar.gz
其他的类似。
3.最后,登录数据库,替换jol数据库。
数据库文件接近100M,需要更改一下php上传文件的大小限制。
3.1修改php配置文件
sudo vim /etc/php/7.0/fpm/php.ini
post_max_size = 250M
upload_max_filesize = 245M
3.2修改ngnix配置文件
sudo vim /etc/nginx/nginx.conf
client_max_body_size 250m
3.3重启服务
sudo /etc/init.d/php7.0-fpm restart
sudo /etc/init.d/nginx reload
4.登录hustoj后台,更新数据库,即可。
参考资料:
hustoj#基于ubuntu1604安装
VirtualBox创建Windows与Ubuntu的共享文件夹
VirtualBox 安装增强功能 ubuntu server版
ubuntu+nginx+php7.0修改上传文件大小限制