昨天开始准备进行Drupal的升级工作,当天就查看了大量资料,下载了最新的版本,将几个没有实际内容的网站进行了升级,有从6.20升级到6.24的,也有一步从6.20升级到7.12的,还有分步从6.20升级到6.24再到7.12的,因为很少涉及第三方模块,内容也极简单,所以算是比较顺利,也积累了一点经验,增强了升级其他正在投入使用网站的信心。
今天首先就拿我的这个个人网站开刀,上午先把6.20下的各种第三方模块升级到最新版本,然后再将核心升级到6.24,还算是比较顺利,网站的外观、功能都变化不大,极少报错提示。
不过再升级到7.12就不是很顺利了,从中午之前就遇到数据库连接问题,到下午5点左右才基本升级完成,可以恢复访问,用了大半天的时间,并且还有少量问题没有完全解决,等待后续继续。
遇到的一些问题记录如下,供以后升级其它网站参考:
- 前一天安装Drupal 7的时候就遇到数据库连接报错,需要安装pdo_mysql.so,并修改php.ini,重启Apache;
- 升级的时候,试图将Drupal 7的root/default/default.settings.php复制到settings.php并修改数据库连接参数,但一直报错,后来将Drupal 6的root/default/settings.php复制到Drupal 7的对应目录中,并修改为可读写,让Drupal 7升级的时候自己修改这个settings.php文件;
- Drupal 7的root/default下如果没有复制Drupal 6中的root/default/files目录或者没有新建这个目录并赋予读写权限的话,升级中会报临时文件目录错,并导致css无法生成,页面变形;
- Drupal 6中的drupal_set_html_head函数在Drupal 7中变成了drupal_add_html_head,后面的参数也与以前不同,需要在数据库中直接修改block中的相应内容,否则页面都报错,如果在模板等其它地方也调用了该函数的话,都需要修改;
- 新安装Global Redirect 7.x-1.4后,网站无法打开,显示页面重定向次数过多,url成了“http://jamesqi.com/zh-hans/zh-hans/zh-hans/zh-hans/zh-hans/zh-hans/......zh-hans/首页”这样的,改用7.x-1.x-dev版本后此问题解决;
- ckeditor的升级报错,原因是目前无法升级,只有重新安装,需要在数据库中先删除原来的ckeditor安装留下的两个表以及system表中的一个带有ckeditor字样的记录,然后重新安装ckeditor;
- Drupal 7中自带的cron管理比较好,以前linux下crontab -e加入的cron运行代码已经无效,需要去修改禁止掉;
- Drupal 7中不需要再修改garland.info和page.tpl.php来添加bottom, top两个block,直接在现在的block管理中“内容”-“主页内容”上下加block就可以实现;
- 新版Transliteration模块中带的拼音数据依然有错,需要复制以前的data目录中修改过的文件来纠正;
- Drupal 7中自带有image等模块,但为了实现所见即所得的编辑器以及图片上传显示的功能,第三方模块wysiwyg, ckeditor, imce, imce wysiwyg bridge这几个还是需要另外安装(注:后来证实wysiwyg和imce wysiwyg bridge可以不装,只需要ckeditor和imce两个模块加一个ckeditor库就可以了);
- Drupal 7中的Boost模块现在还是7.x-1.x-dev,设置比较简单,没有Drupal 6中的细致,也没有在block中找到flush cache的boost cache status那个block,还有.htaccess也需要重新生成、修改保存;
- pathauto模块升级后,token的内容和格式都变动了,需要重新设置;
- IP地址来源显示192.168.0.133内网IP,这是以前就存在的问题,通过修改settings.php中相关设置可以解决,估计升级前也可以这样解决;
- 估计还有一些没有发现的问题,逐步来找、解决、记录。
结论:从Drupal 6.20或者6.22升级到6.24的update过程比较简单,不太会出现大的问题,这个小版本更新后面可以都进行;而从Drupal 6到Drupal7的upgrade过程比较复杂,特别是带有第三方模块、自己调用函数的变化时,可能导致一些报错,大数据量的关键网站暂时不宜进行大版本升级。
评论