前两天的一篇博文介绍如何使用All-in-One WP Migration完成wordpress站点迁移。相对于数据库备份、文件备份的方式,采用插件最大的好处是方便、一键完成,同时避免了由于误操作导致的数据损坏。

在使用文件及插件两种方法备份之后,趁着阿里云还有一个月的使用期,作死尝试了一次大牛们常用的直接操作数据库进行迁站的操作。下面还是按照操作顺序列一下要点:

  1. 安装lnmp、ftp、域名解析、nginx vhost配置同前
  2. 打包转移wordpress网站目录,即通过ftp或其他方式将网站根目录进行复制
  3. 通过phpmyadmin导出、导入wordpress数据库
  4. 新建数据库账户,如果和之前的不相同需要修改wp-config.php文件
  5. 如果站点名称发生改变,例如改为用于测试的www.sy2k.com则需要修改数据库表项”wp_options”中的”siteurl” 和 “home”值。如果在建立wordpress使用了其他前缀,“wp_options”可能为“XX_options”。
    更为彻底的改变所有连接地址可以在wordpress数据库下,运行SQL查询,输入下面的命令,并点击执行即可。
    UPDATE wp_options SET option_value = replace(option_value, ‘www.mydomain.com’,’www.newdomain.com’) ;
    UPDATE wp_posts SET post_content = replace(post_content, ‘www.mydomain.com’,’www.newdomain.com’) ;
    UPDATE wp_comments SET comment_content = replace(comment_content, ‘www.mydomain.com’, ‘www.newdomain.com’) ;
    UPDATE wp_comments SET comment_author_url = replace(comment_author_url, ‘www.mydomain.com’, ‘www.newdomain.com’) ;
    其中,“www.mydomain.com”是之前的网站地址、 “www.newdomain.com”是修改后的网站地址,“wp_comments”是数据表项,如果修改过前缀可能是“XX_options”。
    参考网站:
    http://wpchina.org/how-to-change-wordpress-domain-prefectly-1528/
  6. 设置ftp目录并改为WWW所有者
  7. 在php.ini中修改允许scandir

PS:如果你设置了任何的rewrites (永久链接),你需要禁用 .htaccess , 成功设置后再重新配置永久链接。

PS2:我在网站目录打包转移的过程中出现了中文文件名乱码的情况,使用ftp转移则一切正常。表现为文件名包含中文的图片无法显示。