Wordpress搬迁至Drupal

Submitted by Dot on Thu, 09/05/2013 - 09:32

折腾了几天,今儿终于正式从Wordpress迁至Drupal了。

为了保证平稳过渡,先在自己的Fedora 19上搭建LAMP环境运行了一个Drupal,然后把Wordpress的内容导进来,再进行各项细节调整,确保正常后才上线,过程有点麻烦。

  • 搬迁可以用WordPress Migrate模块,它可以导入Wordpress所有的posts、pages、media以及categories和tags(对于categories和tags的转换需要做好设置)。这个模块依赖于模块Migrate
  • 合适的划分content types可以方便日后管理,导入后如果要改变content types,可以用Node Convert模块。这个模块声明了需要CCK模块,但如果使用的是Drupal 7,就不用安装CCK了,因为Drupal 7已经集成了CCK的主要功能。
  • 为了不让链接失效,还要把文章地址修改成和之前的Wordpress一样的格式。所以Pathauto模块也是必须的,它的作用是自动生成格式化的地址(就是Wordpress中的Permalink,Drupal中叫URL aliases),以及批量修改已有的格式。
  • Drupal与Wordpress的目录结构不同,所以还要将文章中图片链接地址修改成新的路径。
  • 我们还需要一个可视化文本编辑器,Wysiwyg+CKEditor - WYSIWYG HTML editor就不错。
  • 最好再有个图片管理。当然是IMCE了。把IMCE Wysiwyg bridge也装上吧,它可以把IMCE整合到文本编辑器里。

到这里就可以上线了,但为了方便管理,还是要再安装些模块以增强功能。Drupal网站的模块页面https://drupal.org/project/modules,排在前面的那些都是有必要了解的。

本地做了太多测试,有些乱,临上线时发现只要发表文章时填了tags,就会报错:

Notice: Array to string conversion in DrupalDefaultEntityController->cacheGet() (line 364 of /var/www/html/drupal/includes/entity.inc).

当初的WordPress Migrate模块生成了一个field type,叫啥忘了,把WordPress Migrate卸载后还在,看着不爽就直接在数据库里删了,之后就开始报错,估计是这个导致的。看来entity.inc是被修改了。

不管了,先上线。

  • 把测试或临时用的模块都卸载掉,比如WordPress Migrate,搬迁完成就不再需要它了。Node Convert留着吧,以后可能用到。
  • 在主机端创建数据库、用户,加权限,将本地数据库导入。
  • 重新下载Drupal安装包,上传至主机上,解压,用本地sites/目录替换掉主机上的,修改sites/default/settings.php里的数据库配置。
  • 修改目录名或者域名解析。

至此,迁移完成,因为换了新的压缩包,也没有再报错了。剩下的事就是慢慢挑主题,改样式了。

迁移的其他细节可以参考Drupal文档https://drupal.org/documentation/migrate

 

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.