最近总看到Drupal系统有安全升级的提示,忙于别的事情拖了一阵子,现在准备来进行,上次大规模升级还是在2013年3月,再之前就是2012年2月尝试升级,以及2011年初开始使用Drupal。
首先把我的个人网站升级,这个网站所在的服务器重装过,目前PHP用的5.2.x版本,不支持Drush,所以先只好用手工升级,步骤如下:
- 查看需要升级的模块;
- 升级第三方模块:在sites/all/modules中下载新版本、解压、替换以前的老版本目录,老目录文件转移到sites/all/will-delete中;
- 运行update.php升级数据库;
- 在htdocs中下载新版Drupal 7.24,解压,复制老版本中的sites目录下所有文件及jamesqi.com下的robots.txt,logo,favicon等,替换以前的老版本目录,老目录文件转移到/mnt/gx/will-delete中;
- 运行update.php升级数据库;
- 检查“状态报告”,根据新版本的安全提示,修改files下和/tmp下的.htaccess文件内容;
- 修改includes/database/mysql下的schema.inc,改innodb为myisam;
- 反复检查各种情况(例如标签云模板的block设置),直到没有问题。
后面再在其它服务器上用Drush来升级并补充记录在这里。
下午继续用Drush升级了《Google AdSense实战宝典》这个Drupal 6的网站,过程更简洁一些,只是注意提前用cp -rpa把整个目录先人工备份到另外的地方,方便查看以前有过什么更改,用drush pm-update一个命令,回答几个yes后就都是自动升级、备份文件、更新数据库了。升级结束后查看系统状态,也要修改files和/tmp下的.htaccess文件,另外还要复制ckeditor的文件。我再另外顺便做了一些block的简化、排版的简化、栏目的简化等工作。
把以前与Drupal升级有关的博客文章搜索出来供参考:
- 2012年2月14日 - 10:21 《准备进行Drupal的升级工作》
- 2012年2月15日 - 22:37 《本网站从Drupal 6.20升级到6.24,再升级到7.12》
- 2012年2月20日 - 17:33 《大数据量Drupal 6网站升级到Drupal 7很麻烦》
- 2012年9月16日 - 00:06 《用Drush升级了本站(jamesqi.com)》
评论4
再从7.24升级到7.26
刚升级到7.24不久,又看到需要升级到7.26的提示,再次进行升级。
这次升级应该和前面差不多的过程,甚至有两点更简单:
今天把jamesqi.com升级了,以后再陆续升级其他Drupal 7和Drupal 6 (从6.29到6.30)网站。
不间断用户访问进行升级
为了让用户访问网站尽量不中断,可以采取下面的方式:
该办法在很多网站实际的升级中没有问题,不过我们的网站多以浏览为主,如果变动比较频繁的网站,还是最好先把网站设为维护状态,等升级完成后再还原恢复正常访问。
系列网站的批量升级
系列网站一般都是共用一套Web程序,而数据库都是独立的,可以这样进行:
注意这些系列站中各个网站使用的模块最好是一致的。
运行drush up升级长时间等待的问题
遇到有的网站在运行drush up升级的时候,需要等待很长时间,长达很多小时,甚至最后报错停止,说无法复制备份。
经过检查,应该是cache目录的问题,当用boost缓存的时候可能生成很大量的缓存文件,drush自动备份需要很长时间。
这时候可以先移动或者删除cache目录,然后再运行drush up升级,等升级完成后,将cache目录再恢复到原来的地方。