很多站长都喜欢做站群,那么利用Drupal是是相当不错的了,Drupal一套程序可以支持多站点,同在我们来讲讲Drupal多站点如何共享一个数据库的配置方法。
Drupal本身对多站点有良好的支持,详细规则可以查看drupal的settings.php获得详细的帮助.
这篇文章要介绍的,是多站点如何共享数据表.考虑以下应用场景:
有个网站是,同时这个站点要启用一个二级域名.
Blog与主站点用户数据共享,这种情况下如何配置?
通过一番调研与实验,在drupal官网上找到解决方案.链接如下. 英文不太好的同学,参考这里的步骤就行了.https:///node/2622https:///node/22267/topics/batch-change-mysql-table-prefix/准备:
两个安装好Drupal站点的数据库,如果两个数据库没有表前缀,参考下面的文章进行修改.
假设一个表前缀是main_,另外一个是blog_
你需要了解如果批量更改数据库的表前缀.参考:
/topics/batch-change-mysql-table-prefix/
将上面准备好的两个数据库,合并为一个数据库.
域名指向同一个路径Drupal安装路径
使用Drupal的多站点机制,两个站点分别使用不同的settings.php文件.(关于这一点,不是本文重点,请自行调研.)
目录结构如下:
settings.php
settings.php
做完以上步骤,最好修改settings.php文件的数据库配置,分别测试,确认合并后的数据库可以正常工作.
配置的技巧,在于settings.php里面$databases变量.
//settings.php如下
$databases = array (
"default" =>
array (
"default" =>
array (
"database" => "drupal",
"username" => "root",
"password" => "",
"host" => "localhost",
"port" => "",
"driver" => "mysql",
"prefix" => "main_",
),
),
);
//settings.php配置如下
$databases = array (
"default" =>
array (
"default" =>
array (
"database" => "drupal",
"username" => "root",
"password" => "",
"host" => "localhost",
"port" => "",
"driver" => "mysql",
"prefix" => array(
"default" => "blog_",
"users" => "main_",
"sessions" => "main_",
"role" => "main_",
"authmap" => "main_",
),
),
),
);