常阳时光

折腾WordPress MU多站点设置与独立域名映射

在WordPress 3.0版本中,已经开始提供了创建一个多站点博客网络的功能,此文仅是记录一下折腾如何创建这么一个网络的说明。切记,开启多站点博客网络之前一定要先备份好数据。

基本流程:检查主机是否支持 –> 全新安装 WordPress 3.0+ –> 启用 Network –> 导入数据 –> 调整数据 –> 独立域名映射。

检查主机是否支持

WordPress 必须安装在网站根目录下,创建网络时会让您选择是以子域名的方式来创建网络,还是以子目录的方式来创建网络,它们的形式如下:

WordPress 必要的设置

  1. 如下列的情况,那你不能创建一个站点网络 :
  • 如下列的情况,你不能选择 子域 安装:
  • 安装 WordPress 3.0+

    这个就不多介绍了,直接按照向导安装即可。我测试的时候是直接用已经安装好的独立站点开启多站点的,不过还是建议全新安装。

    启用 Network

    前面介绍到 MU 里面 Network 有两种形式:1是子域名,2是目录,比如 gkp.com/a 和 gkp.com/b ,可以根据个人喜好选择。我选择的是子目录形式(后续均为以子目录建立多站点网络内容)

    打开 wp-config.php,将下面这行添加在 define('WP_DEBUG', false); 之前:

    define('WP_ALLOW_MULTISITE', true);

    之后就可以在后台的 Tools –> Network 看到网络设置了,在这里输入网络的名字和管理员 Email 等信息,点 Install 安装。

    然后按照向导程序的提示分别将给出的文件内容添加到 wp-config.php 和 .htaccess 两个文件中。至此 WordPress MU 网络的设置就完成了,重新登录后台就可以看到左上方多出了站点网络相关菜单。

    导入数据

    建议直接在原 blog 使用 export 导出 xml,新 blog 这边用 wordpress importer 导入,支持作者映射和附件下载。

    调整数据

    主要是上传文件位置,比如 example.com/wp-content/uploads/ 之前文章中引用的都是这样的地址,可以直接在导出后修改数据库。

    独立域名映射

    1. 从主站点后台安装并启用 WordPress MU Domain Mapping 插件;
    2. 在该插件目录复制 sunrise.php 一份到 wp-content 目录;
    3. 修改wp-config.php,在 /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */ 前面加入一行 define( 'SUNRISE', 'on' );
      进入主站点后台 设置 -> Domain Mapping 里面输入服务器的 IP 地址(或者是一个 CNAME),设置下是否允许用户自行设置域名映射等选项,然后保存即可。
    4. 主站点后台 设置 -> Domains 里面,或者各个子网站管理员后台的 Tools –>Domain Mapping 里面设置域名了,每个网站支持多个域名映射,需要设置一个 primary 域名,最终所有的域名都重定向到这里。

    查看 Site ID 方法: 主站点 -> 站点 -> 所有站点 ,鼠标放到 路径 上去,在浏览器左下角看到链接地址?id=xx。

    ###############Tips###############

    1. WordPress开启目录形式多站点去掉永久链接前的 blog :wp-config.php 中有一个配置是 define('BLOG_ID_CURRENT_SITE', 1);表示Site ID 为 1 的站点为默认博客,这个博客固定链接会加了/blog/,只要将1改为一个不存在的 Site ID 即可,比如8。

    参考资料:

    1. 官方文档:创建站点网络
    2. Gkp's Post:WordPress 3.0 MU 设置与独立域名映射
    3. 乌徒帮:WordPress开启目录形式多站点去掉永久链接前的blog
    4. 水景一页:升级至WordPress 3.0多站点模式
    5. 水景一页:升级到WordPress 3.0多站点模式问题探索