当前位置

2013年底再次升级Drupal 6和Drupal 7

James Qi 在 2013年12月12日 - 14:49 提交
内容摘要:最近总看到Drupal系统有安全升级的提示,忙于别的事情拖了一阵子,现在准备来进行,上次大规模升级还是在2013年3月,再之前就是2012年2月尝试升级,以及2011年初开始使用Drupal。 首先......

  最近总看到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升级有关的博客文章搜索出来供参考:

 

 

评论

-- 发自IP地址: 89.204.130.213 (位置 | 谁是)

  刚升级到7.24不久,又看到需要升级到7.26的提示,再次进行升级。
  这次升级应该和前面差不多的过程,甚至有两点更简单:

  1. includes/database/mysql下的schema.inc没有修改,因为mysql中应该已经设置为只运行使用myisam、不能使用innodb;
  2. 另外也不需要再修改files下和/tmp下的.htaccess文件内容。

  今天把jamesqi.com升级了,以后再陆续升级其他Drupal 7和Drupal 6 (从6.29到6.30)网站。

James Qi / 祁劲松

-- 发自IP地址: 89.204.153.73 (位置 | 谁是)

  为了让用户访问网站尽量不中断,可以采取下面的方式:

  1. 复制一套web文件(之前最好还要复制一套到/backup中),例如cp -rpa /var/www/html/abc.com /var/www/html/abc.com-new
  2. 进入新目录cd /var/www/html/abc.com-new,及对应的站点目录cd sites/abc.com,再运行drush升级drush up
  3. 升级运行结束后,修改robots.txt和.htaccess,然后修改目录名mv abc.com abc.com-old;mv abc.com-new abc.com
  4. 检查测试是否有异常,如果都正常则升级完成,abc.com-old目录可以删除或者转移到备份文件夹中

  该办法在很多网站实际的升级中没有问题,不过我们的网站多以浏览为主,如果变动比较频繁的网站,还是最好先把网站设为维护状态,等升级完成后再还原恢复正常访问。

James Qi / 祁劲松

-- 发自IP地址: 89.204.153.73 (位置 | 谁是)

  系列网站一般都是共用一套Web程序,而数据库都是独立的,可以这样进行:

  1. 先升级其中一个站点,例如在/var/www/html/usa.abc.com/sites/ak.abc.com目录下运行drush up来升级ak.abc.com;
  2. 再运行一个批处理sh脚本,在各个目录下运行drush updatedb来升级各自的数据库,来升级al.abc.com、wy.abc.com等。

  注意这些系列站中各个网站使用的模块最好是一致的。

James Qi / 祁劲松

-- 发自IP地址: 82.113.121.30 (位置 | 谁是)

  遇到有的网站在运行drush up升级的时候,需要等待很长时间,长达很多小时,甚至最后报错停止,说无法复制备份。
  经过检查,应该是cache目录的问题,当用boost缓存的时候可能生成很大量的缓存文件,drush自动备份需要很长时间。
  这时候可以先移动或者删除cache目录,然后再运行drush up升级,等升级完成后,将cache目录再恢复到原来的地方。

James Qi / 祁劲松