本文由HosteGuide.com的高级工程师Ray原创,如需转载请注明本文出处,并保留本文超链接!
http://cn.hosteguide.com/html/hosting/hostmonster/move-shopex-to-new-hosting,141.html
Shopex是国内非常优秀的网上商城系统,在国内有众多忠实的用户。这几天有一个朋友要再建立一个新商城,准备把原先老的shopex商城整个的复制到新的空间上,我原以为简单,没有想到却由于商城的数据极大,有将近4G的数据,在转移的过程中遇到了极大的困难。下面就将运行中的shopex商城复制到新服务器中的过程、遇到的问题、以及解决方法,同大家分享。
为了说明清楚,下面就将朋友原来的网站称呼为Shopex 老站,将要建立的新站称呼为Shopex新站。将原来的服务器称呼为老服务器,新建网站的服务器称呼为新服务器。
因Hosteguide.com获得了美国顶级主机商Hostmonster的授权,可以给读者 4.95美金/月的超级特价,而且是无限空间,无限流量,无限个数的企业邮箱,最关键的它还支持ssh,这样可以直接操作服务器,对于网站的转移十分有用。所以,朋友选择hostmonster作为Shopex新站的主机供应商。
那么现在的问题就是在如何不中断shopex老站的运行的前提下将网站整个搬到新服务器。本以为把shopex老站上的文件通过ftp 下载到本地,再上传到新服务器,然后再导入数据库文件即可。没想到,首先遇到的问题就是:
通过ftp无法显示全部的图片文件。因为我的图片太多,通过ftp访问 /syssite/home/shop/1/pictures/productsimg/big 时,由于图片文件太多,只能显示1千多个文件,而剩下的文件根本无法显示。
于是,我就试图将原有的文件在服务器上直接压缩成zip文件或tar.gz文件,然后在新服务器上通过ssh,直接把整个网站的压缩包拖到新服务器上解压。但在实际操作的时候,也遇到了问题。由于shopex老站用的是虚拟主机,对每个操作的cpu使用时间做了限制,因此当执行 tar cvfz 进行压缩的时候,总是压缩到900M的时候就中断了,无法完成整个的压缩过程,因为这超出了服务器设定的一个任务耗费时间的极限。
看来,只有分化瓦解,逐个击破了!
方法如下:
1,首先,在老服务器上将shopex老站整个打包,但打包的过程中排除 /syssite/home/cache 和/syssite/home/shop/1/pictures/productsimg 2个目录。将打包的文件存为 shopex.tar.gz
排除指定目录打包的方法可以参考
http://cn.hosteguide.com/html/classroom/tar-cvfz-exclude,133.html
打包后 shopex.tar.gz 大约8M左右
2,通过ssh 登录hostmonster的新服务器,在public_html目录下执行 wget http://www.myoldshop.com/shopex.tar.gz
将老服务器上的程序文件下载到新服务器。由于通过服务器直接操作,这个过程只耗时3分钟。
3,通过ssh解压新服务器上的 shopex.tar.gz,执行命令为:
tar xvfz shopex.tar.gz
解压后,在新服务器的web目录public_html下,就有了shopex程序(缺cache和图像目录)
4,在老服务器上,启用shopex 老站 /syssite/home/cache 和/syssite/home/shop/1/pictures/productsimg 的文件浏览功能。(就是可以通过浏览器看到这个目录下的每个文件。这个功能一般为了安全原因是关闭的)
5,在新服务器上,执行 wget -r http://www.myoldshop.com/syssite/home/cache 和/syssite/home/shop/1/pictures/productsimg 将整个图片目录拉到新服务器的相同位置。(此过程耗时2小时)
6,等图片目录全部下载好后,关闭老服务器上的文件浏览功能。此时,新服务器上就有了除了cache目录的所有文件。用ftp或ssh 在新服务器的/syssite/home 下新建cache目录,并设置为可写。把shopex安装包中的cache目录下的几个文件上传到新服务器下的cache目录。此时文件的转移工作就全部完成。
7,在老服务器上通过phpmyadmin导出老数据库。或者通过ssh直接导出数据库。数据库导出后,由于数据库很大,无法正常通过phpmyadmin导入,只能在服务器上通过ssh 直接导入。通过ftp或wget拉到新服务器下,然后运行 mysql -u username -p database_name < FILE.sql (详细ssh下数据库的导出导入参考 http://cn.hosteguide.com/html/classroom/ssh-backup-restore-mysql,136.html)
8,最后,修改mall_config.php,将新服务器的数据库名,数据库用户名等信息填入。
新的网站就完工啦!整个耗时不到2个半小时,一个超大的shopex网店就诞生了!









