08年的一个客户想要把站点迁移到我们的服务器上,由于是一个大客户,我准备把站点迁移到linode上。以下是整个过程和经历:
站点的原来规模是一个SupeSite+DZ+XSpace+UC的组合,虽然采用了开源代码,但在程序上进行了包括模板定制在内的大规模改动。对方没有IT支持,所以我们的沟通成本也很大。整体来说,是一个不大不小的事情。
这个事情的开端是比较痛苦的,他们站点的所有备份文件我都没有,等要到了FTP、DB的备份,时间也过了一天。可想而知,如果这些资料一开始就准备得当,转换是可以在30分钟内完成的平滑过度。对于一个具有一定规模的站点来说,这节省下来的时间是相当宝贵的。这样证明,企业专有的ADMIN还是很重要的。
排除非人为因素,关于系统的过度,Comsenz有很详细的介绍:
http://faq.comsenz.com/viewnews-539
http://faq.comsenz.com/viewnews-504
对于租用虚拟主机的用户,这些内容已经够了,但是Linode是VPS,我们可以用更简单的方法……
该任务有两种思路可以完成它:
1、架设全新的系统,然后恢复数据库以及相关文件(头像、附件等等)
2、拷贝以前的系统文件,恢复数据库,修改相关参数
由于我手上没有以前系统的版本信息,我无法下载相应的程序,而且我也不知道我们之前到底更改了哪些系统代码;所以采取了第二种思路。
更改域名指向
我们首先应该把域名转向给更改了,因为这个是需要时间刷新的,所以最好放在一开始完成。A记录和泛解都应该指向新的IP。
某些服务商是可以提供WEB在线打包的,那么你的站点可以很迅速的把自己打包为压缩文件,之后通过远程服务器对传文件。登陆到VPS之后,用wget命令取得了原来FTP上的压缩包。
wget可以实现很复杂的下载操作,而利用远程服务器获取FTP上的文件只是杀鸡用牛刀。
详细内容可以通过man查询,或是看看这里:http://airwave.blog.hexun.com/4162966_d.html
如果你无法快速拿到原站点的打包,你可以尝试FTP对传,也就是利用FlashFXP打开两个远程FTP,左右对传。总之,尽量避免传送到你的工作站再上传到新服务器,对于动辄上G的FTP备份,这个办法太脑残了。
至于数据库,得到SQL文件之后,可以上传到VPS,登陆mysql的命令行,用source命令导入。当然还有一些适合生产环境的方法,可是对于大多数使用此类开源系统的企业,短短几秒钟的数据库备份时间应该不会产生太大影响。
至此,还算比较顺利。
确保Zend正常
待DNS已经更新了我的域名解析之后,我打开浏览器进行调试,结果发现它提示我没有ZEND:
Attention:Zend Optimizer not Installed
In order to run this software,please install the latest version of freely available Zend Optimizer
您的服务器尚未正确安装运行本软件所需的 Zend Optimizer 软件,请与空间提供商联系。
自己服务器上应该配置了Zend才对,可是为会这样呢?
在Google上找不到什么有用的内容,我直接进入Comsenz的论坛进行搜索了,果真我不是第一个吃螃蟹的人:
http://www.discuz.net/search.php?searchid=2561&orderby=lastpost&ascdesc=desc&searchsubmit=yes
总结一下关于Zend的安装问题:
1、phpinfo出现zend的图表不代表zend被正确配置,需要后面出现详细的zend参数才行
![]()
2、注意php和zend的版本对应,zend的安装包里有很多种版本

3、php.ini需要配置正确
参考http://bbs.zendchina.net/viewthread.php?tid=41,该文档是zend的官方文档。
http://www.xinlei.org/article/jishu/415.htm有相关参数的解释
主要设置如下两个参数:
zend_optimizer.optimization_level=15
zend_extension=”/usr/local/Zend/lib/ZendOptimizer.so”
切忌将zend_Optimizer.encoder_loader设置为0,此选项默认为1,这意味着会开启zend的加密解密功能。SupeSite的程序都是经过加密的,所以需要开启zend的解密。(这也是配置zend的主要目的)
4、保证zend的文件夹具有可执行权限
我用root登陆进行的配置,所以没有遇到问题;如果是非root,应该要chmod设置一下。
调整Gzip
接下来打开浏览器,首页是显示到一半浏览器突然自己刷新然后提示:无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式。
这个就比较郁闷了,这个应该是gzip的问题,我的服务器在PHP上已经设置了zlib的压缩。是否是需要禁用supesite的gzip?
在文件里面搜索gzip的选项:
目录下有这么多文件包含gzip,但是很显然只会在一些config文件里面才会有用。
你需要检查这些文件:bbs_settings.cache.php、cache_settings.php、config.cache.php。确保里面的gzipcompress均为0。
再看看系统的配置文件
再测试一下,已经能够正常显示了。就在我以为已经大功告成了的时候,我竟然发现登陆的时候会提示无法链接到数据库!
这就让我郁闷了,因为config.php的数据库信息已经被我更改过了,怎么会无法链接了。再次求助Comsenz的官方论坛,果然我还不是第一个吃螃蟹的人:
http://www.discuz.net/viewthread.php?tid=1370988&highlight=%CA%FD%BE%DD%BF%E2%2B%C7%A8%D2%C6
原因很简单,就是由于是几个组件的整合,你需要更改每个组件的配置文件。
动手搜索文件名包含“config”的文件,需要修改的有三个:
一个是uc的config.ins.php,一个是dz的config.inc.php、最后是ss的config.php。
这些配置文件里面,数据库用户名、数据库密码、数据库名称都是必填的。你还要确保后面的一些域名和IP地址的设置都是正确的,否则整套系统无法整合起来。
修改完后,刷新一下页面,已经可以正常登陆了。其他功能也正常了。
修复死链
这个问题在更换域名之后就会出现。参考了一些网友的意见:http://www.xlbbs.cn/bbs/redirect.php?tid=2685&goto=lastpost。
我发现官方提供了相应的工具来修复:
http://www.discuz.net/thread-618077-1-1.html
注意执行需要事先登陆为管理员,使用完毕候请删除该脚本。
最后一点问题也清除了~呵呵
总结
- 珍惜生命,善用搜索
- 确保你考虑到了所有可能性,尤其是在配置文件的问题上
- 不能忽视日常备份










![[F5] Brisbane and Gold Coast Web Design, Development, Illustration and more... (20100729)](http://farm5.static.flickr.com/4120/4874414037_b26e7875d6_s.jpg)