一个 WordPress 安装,多个博客
2008年09月22日
你是否有多个博客,每个博客都是使用多个 WordPress 博客?那么你是否厌烦了重复多次的升级,重复多次的安装插件?如果是的,你是否尝试过一个 WordPress 安装,就能给多个博客使用呢?下面我就能讲讲我如何实现一个 WordPress 安装实现多个博客共同使用。
第一步,肯定是把所有的域名都指定到相同的 WordPress 安装目录下。这样才能使得所有博客使用同一个 WordPress 安装。
第二步要分两种情况:
第一种是使用不同的数据库。只需要在 wp-config.php 文件的开头加入以下代码:
$hostname = $_SERVER['HTTP_HOST']; switch ($hostname) { case "fairyfish.com": $db = "db1"; break; case "denis.fairyfish.com": $db = "db2"; break; } // ** MySQL settings ** // define('DB_NAME', $db); // The name of the database
代码很简单就是根据不同的域名,给 DB_NAME 不同的数据库名的值。这里是假定你使用相同的数据库用户名,如果你的数据库用户名,也可以在每个 case 语句中指定。
第二种情况是使用相同的数据库,这个时候我们可以使用不同 table_prefix 来搞定。方法基本和上面相同。我也不再重复代码。对于这种情况,已经有一款插件他能帮助你完成所有的了工作,WP-Hive,这款插件除了能够给你不同的博客指定一个不同的 table_prefix 之外,还能够通过 rewriter 实现每个博客都能有自己的 favicon,sitemap.xml 和 robots.txt。
最后让所有的博客使用相同的用户。这个功能只能适合 WordPress 2.6 之后的版本。实现方法是在 wp-config.php 文件中指定 CUSTOM_USER_TABLE 和 CUSTOM_USER_META_TABLE 这两个值为常量,使得所有的博客都是用同一个 USER 和 USERMETA 表,从而达到所有博客拥有相同的用户。
66 条评论 添加你的评论 →

1. mg12 | 2008:09:22 - 14:24:42 | #
沙发, 好介绍!
但这样前提是要有多个数据库, 想想能不能在一个数据库中实现… (就是数据库的表的前缀不一样.)
2. Denis | 2008:09:22 - 14:26:54 | #
我晕,我都介绍了!
3. dupola | 2008:09:22 - 15:38:23 | #
哇呀呀,这个可真好啊。
4. Frank Richard | 2008:09:22 - 15:41:54 | #
支持 等下试试去!
5. newstart | 2008:09:22 - 16:13:13 | #
最后的使用同一个用户还是没搞明白,是admin使用同样的帐户吗?
6. Denis | 2008:09:22 - 16:23:38 | #
就是所有博客都使用 admin 这个帐户进行管理,密码都一样。
7. 流星 | 2008:09:22 - 16:32:38 | #
当我看到第一步时候,我就知道我没戏了
红色主机目录绑定域名,仅限一个域名指入
不过好没精力维护多个博客,一个都好累……
8. 85824 | 2008:09:22 - 16:42:02 | #
嘿嘿。学习学习。
9. hiswing | 2008:09:22 - 18:53:03 | #
刚好有用3Q。
10. Lucy | 2008:09:22 - 19:40:05 | #
看不懂诶
看的懂的都是已经知道的人
没意义
11. kenzen | 2008:09:22 - 21:39:37 | #
cool
真的是很巧妙的主意
12. MY-Hou | 2008:09:22 - 22:08:06 | #
唉..我还是2.5.1
13. fisio | 2008:09:22 - 23:12:38 | #
牛逼大了。。。
14. Alan | 2008:09:22 - 23:31:00 | #
正好有需要
15. Francis | 2008:09:23 - 00:14:51 | #
Big Brother is Watching U.
各位小心啊,哈哈。
16. tsenfine | 2008:09:23 - 02:23:47 | #
不错的想法,dennis能否告诉我这样子做出来的“多用户博客“跟wpmu有什么区别吗?
17. Kola | 2008:09:23 - 09:02:20 | #
一个WordPress博客可以使用多域名么?
18. Denis | 2008:09:23 - 11:42:59 | #
可以!
19. 魑魅魍魉 | 2008:09:23 - 09:37:48 | #
本人博客甚多,算起来应该会有14到16个,哈哈,全是WP的,不过俺先不管这了,你得先参加俺滴活动再说,过几天试试这个方法去:
哈哈,看了很多位牛牛们的WordCamp评论以及感受,我见到最多的就是每一个博主都在说另一些博主长得很“猥琐”,可是却不知道到底哪个是哪个了,而俺滴好奇心很浓,所以,俺很想看看每一位“猥琐”滴博主到底是怎么个“猥琐”活,所以,组织这一次活动,希望大家都能参与参与,你是牛人,别小看我,你不是牛人,别高举我,我就只是想看看你的“猥琐”样儿而已。
这个活动为了是让我们这些没有参加的也都能互相认识认识参加了的以及其它没有参加的,所以,大家赶紧上自己的单人照哪,我这张是在西塞山拍的。
活动都喜欢点名,因为俺滴博客没啥人看,所以,这里就不点了,我去你们那儿一个一个点。活动地址,请愿意参加的(我很想强行,可是没这个能力)朋友把照片发布地址在这里告诉俺一下下,OK???
http://www.pantao.name/post/2008/09/handsome-boys-and-beautiful-girls-are-using-wordpress.html
20. Denis | 2008:09:23 - 11:43:24 | #
支持,但是我为人低调,就不参加这些活动了。
21. ray1980 | 2008:09:23 - 10:51:29 | #
第一种的话,风格和插件会怎么样?
22. bssn | 2008:09:23 - 13:17:53 | #
爱死你了,我就等这个!
23. ray1980 | 2008:09:23 - 21:14:42 | #
绑定域名怎么做?
光只要绑定A记录么?CP后台要怎么做啊?
24. leojn | 2008:09:23 - 23:12:05 | #
太好了,我刚建了一个新站.明天一定得试试
25. leojn | 2008:09:23 - 23:17:39 | #
我的留言是不是还得审核啊?
要是能有不同的themes就更好了.呵呵
26. leojn | 2008:09:24 - 13:58:34 | #
可以实现不同的主题和插件,不过”wp_hive还能够通过 rewriter 实现每个博客都能有自己的 favicon,sitemap.xml 和 robots.txt。”这一点有谁成功的吗,我这里无法实现该效果
27. 酷林 | 2008:09:24 - 14:15:41 | #
我的主机只允许指定一个域名 就无法实现了吧
28. xaoma | 2008:09:24 - 14:18:46 | #
好,终于不用愁了,不过这收录什么的影响不?
29. Vincent | 2008:09:25 - 09:49:15 | #
老大,你这个比Hive好用,可以分开数据库的说。
单我用的时候有问题,请再指点一下:
——
改后无论访问那个都说链接数据库失败。
上面两个db,都用的同一个user,和密码。老大帮忙看看那里出错了,谢!
30. Vincent | 2008:09:25 - 09:53:10 | #
?,代码都哪里去了?
<?php
//**Vincent differ db**//
$hostname = $_SERVER['HTTP_HOST'];
switch ($hostname) {
case “biz-plug.com”:
$db = “biz_bizplug”;
break;
case “zz.biz-plug.com”:
$db = “biz_zz”;
break;
}
// ** MySQL settings ** //
define(‘DB_NAME’, ‘$db’); // The name of the database
define(‘DB_USER’, ‘user1′); // Your MySQL username
define(‘DB_PASSWORD’, ‘user1pass’); // …and password
31. Denis | 2008:09:25 - 12:18:53 | #
要看你的 db user 是否有权限访问的数据库。
32. Vincent | 2008:09:25 - 10:08:19 | #
oh?我的留言呢?飞兄?难道要审核?
33. Vincent | 2008:09:25 - 13:00:07 | #
有权限的,以前都是好好的。出问题后,改回来也能用,一加代码就有问题了。
34. Vincent | 2008:09:25 - 13:29:01 | #
数据库连接建立失败 总报这个,我怀疑和$db变量有关,没有传递到define(’DB_NAME’, ‘$db’);这里,所以连不到数据库。
35. Denis | 2008:09:25 - 13:51:39 | #
认真看了下,原来是 ‘$db’,把 $db 后面的单引号去掉!汗。
36. Vincent | 2008:09:25 - 14:34:54 | #
cool,搞定了,变量不加引号,感谢:)马上去吧Hive删掉
37. Vincent | 2008:09:25 - 14:50:12 | #
大侠,再问一个弱智的问题。
我想建个中文的用户名,怎么说我用户名里有非法字呢?英文的就没关系。
还有admin 帐户不能删除么,我想删掉安全些,但是不让我删。
38. Vincent | 2008:09:26 - 09:59:12 | #
已经搞定了,呵呵,显示为那里。而且admin不能删除的说。多谢!
39. Vincent | 2008:09:26 - 10:51:36 | #
如果能够像Hive一样使用不同的 favote。ico就更好了。:)
40. 沙渺 | 2008:11:07 - 18:27:27 | #
能的,要求Apache主机,通过mod_rewrite可以手动实现。
我正在撰文罗嗦这个内容。稍后还会再回复。
41. 沙渺 | 2008:11:07 - 21:13:13 | #
写好了!
http://shamiao.com/2008/11/1wp-mulblog-attpts.php
这里提供了实现不同的favicon的方法
42. 中国加盟网 | 2008:09:26 - 12:57:28 | #
呵呵,太感谢了,学了不少东西
43. shamiao | 2008:09:26 - 15:27:52 | #
加星,加delicious
44. rice | 2008:09:26 - 17:38:38 | #
不错,试试去。
我的博客 http://www.centerday.com
45. HK | 2008:10:04 - 20:28:01 | #
不错,很有用!谢谢!
46. love~~ | 2008:10:07 - 16:34:34 | #
学习~~学习~~推荐,谢谢!
47. hiclin003 | 2008:10:10 - 20:15:08 | #
48. Xiaofeng | 2008:10:16 - 15:39:34 | #
“把所有的域名都指定到相同的 WordPress 安装目录下”是必须的吗?我的域名1是绑定到根目录的(只能如此),程序安装在wordpress目录;我把域名2绑定到了”根目录\wordpress”,然后按照上面的方法进行了设置。但是域名1没有什么影响,而域名2刷新后是一个空白页面,请教一下是怎么回事
49. Denis | 2008:10:16 - 15:43:43 | #
必须的!
50. Xiaofeng | 2008:10:16 - 16:22:57 | #
这是不是意味着我的主域名只能单独的使用wordpress文件夹,而域名2、域名3……等附加域名或子域名可以共享另外一个文件夹?
51. Xiaofeng | 2008:10:16 - 17:09:20 | #
我第一个blog域名是绑定到根目录的,wp程序在.\public_html\wordpress下面,域名2指定ip后,在cpanel里增加附加域名到.\public_html\wordpress这个目录,
一开始我是用两个数据库,没有成功,后来我改成一个数据库,不同的数据表,其他的设置不变,就行了。
不知道这个结果和飞猪兄说的“把所有的域名都指定到相同的 WordPress 安装目录下”是否矛盾?也许我理解错了你的意思了。
52. 新西兰房地产 | 2008:10:17 - 16:17:30 | #
谢谢博主分享,不过我觉得WP-Hive这个插件用起来不错,一样的效果
53. 沙渺 | 2008:11:07 - 21:15:07 | #
写了篇续貂补遗,讲了讲有必要注意的一些小细节。
http://fairyfish.net/2008/09/22/one-wordpress-installation-multiple-blogs/
54. 沙渺 | 2008:11:07 - 21:15:59 | #
错了错了,补遗的地址在:
《同一个WordPress程序建设多个博客:续貂补遗 – 沙渺很忙》
http://shamiao.com/2008/11/1wp-mulblog-attpts.php
55. Denis | 2008:11:07 - 21:33:48 | #
下面的 pingback 就是你的。汗下!
56. 沙渺 | 2008:11:08 - 09:03:09 | #
太丢人了。
对了,如果denis不介意,能否请您删去写错的那条评论,感谢您。
57. ray1980 | 2008:12:12 - 10:38:12 | #
出现这样的错误是什么回事啊?
Warning: array_keys() [function.array-keys]: The first argument should be an array in /home/koryi/public_html/wp-includes/widgets.php on line 1044
58. 菜 | 2009:01:23 - 00:50:50 | #
我比較菜…誰能告訴我把那兩個值指定爲常量該怎麽干…
拜托了
59. 沙渺 | 2009:03:16 - 21:38:18 | #
就这样
define(‘CUSTOM_USER_TABLE’, ‘wp_users’);
define(‘CUSTOM_USER_META_TABLE’, ‘wp_usermeta’);
60. Garfield | 2009:03:19 - 21:51:37 | #
謝謝,去試試~
61. cocoswan | 2009:05:31 - 07:21:05 | #
你好~
刚买了域名,也想用WP的模板来着。
但没人指导,自己找了好久百度也没见出个教程。
因为我暂时没有没虚拟主机什么的,所以我用的免费空间。
我想问一下是不是必须买带SQL的主机呢。因为我看WP安装教程里要求填写SQL名称什么的。。。
或者你告诉我你是自己买的空间么???买的哪的呀。。多大呢??
问题多多,但先谢谢了哦。。。。
---------一个啰嗦+纠结+无措 滴人求助~!
62. Denis | 2009:05:31 - 14:40:23 | #
wfans.org
63. cocoswan | 2009:05:31 - 16:35:05 | #
嗯。我先进论坛看看。。。
谢谢了。
64. crys | 2009:07:25 - 16:29:42 | #
你好,我安装了wp-hive后,如何“把所有的域名都指定到相同的 WordPress 安装目录下”呢,我试了许久都没找到方法
65. leeyi | 2009:11:21 - 15:14:02 | #
我用的是hostmonster 的主机,想要用一套wordpress系统在一个数据库中安装多个博客,按楼主的方法试了几次不行,请问楼主是如何使用不同 table_prefix 来搞定的呢,能不能提供wp-config.php 文件修改后的详细代码呢?
66. Denis | 2009:11:22 - 02:18:59 | #
定义 $table_prefix 然后把默认的 $table_prefix 删除了!