随着网站数据量的逐渐增大,原先的虚拟主机已经无法满足需求,所以很多网站都从虚拟主机迁移到了VPS上。这时候就存在2个问题,一是数据文件太多,导入导出经常出问题;二是文本文件太大,从FTP下载然后再上传会浪费大量时间。
先看数据文件问题。如果数据库导出的文件超过2M,就不能在新的数据库中直接导入,需要修改数据库和php的相关设置(详见VPS流量问题)。这个办法在数据文件有几十兆的时候还是有效的,但数据文件超过百兆,甚至到G的时候就会发现,在导入数据的时候经常会断,或出现导入不全的情况。这时候可以用下面的方法解决。
- 虚拟主机上导出数据库sql格式
- sql文件先用zip压缩,上传到VPS空间
- 用putty登陆vps
- 用unzip解压zip文件,得到××.sql。
- 进入mysql命令操作:mysql -u root -p进入mysql
- use 数据库名(已经建好的数据库)
- source ××.sql执行sql语句,实现数据导入。
再看文本文件问题。很多虚拟主机是有文件压缩功能的,但在网站太大的时候经常压缩不了,或压缩不全。如果你的虚拟主机能够给你提供网站的压缩文件,那必将为你迁移网站节省大量时间。如果不能,传统的方法是你用FTP把所有的文件都下载下来,然后再传到VPS的空间上去。如果你的网站达到几G的话,会耗费大量的时间和精力。这时候可以尝试下面的方法:
- ftp client安装:apt-get install lftp(lftp,功能更强大的ftp)
- cd命令进入htdocs文件夹(或其他存放网站文件的目录)
- lftp(进入lftp命令模式)
- open ftp地址(虚拟主机的FTP地址)
- user 用户名
- 同步ftp文件夹和vps文件夹:mirror -c –parallel=number remotedir localdir(隐藏文件不能同步,需要手动下载后再传上去,如.htaccess文件)
思路很简单,就是通过VPS直接登录到虚拟主机的FTP,然后直接将ftp中的文件同步到vps上。这样免去了比下到本地再上传减少了一步,能节省一半时间。而且,如果你的主机在国外的话,国外的网速比国内快好几倍,将能为你节省更多的时间。