一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Drupal 7多站点共用同一个数据库如何配置

时间:2022-06-25 16:20:45 编辑:袖梨 来源:一聚教程网

Drupal本身对多站点有良好的支持,详细规则可以查看drupal的settings.php获得详细的帮助.
这篇文章要介绍的,是多站点如何共享数据表.考虑以下应用场景:

有个网站是example.com,同时这个站点要启用一个二级域名blog.example.com.
 Blog与主站点用户数据共享,这种情况下如何配置?

通过一番调研与实验,在drupal官网上找到解决方案.链接如下. 英文不太好的同学,参考这里的步骤就行了.https://drupal.org/node/2622https://drupal.org/node/22267http://www.im87.net/topics/batch-change-mysql-table-prefix/准备:

    两个安装好Drupal站点的数据库,如果两个数据库没有表前缀,参考下面的文章进行修改.
    假设一个表前缀是main_,另外一个是blog_

    你需要了解如果批量更改数据库的表前缀.参考:

        http://www.im87.net/topics/batch-change-mysql-table-prefix/

    将上面准备好的两个数据库,合并为一个数据库.

    域名指向同一个路径Drupal安装路径

    使用Drupal的多站点机制,两个站点分别使用不同的settings.php文件.(关于这一点,不是本文重点,请自行调研.)

    目录结构如下:
    sitesexample.comsettings.php
    sitesblog.example.comsettings.php
    做完以上步骤,最好修改settings.php文件的数据库配置,分别测试,确认合并后的数据库可以正常工作.

    配置的技巧,在于settings.php里面$databases变量. 

//sitesexample.comsettings.php如下
$databases = array (
  'default' =>
  array (
    'default' =>
    array (
      'database' => 'drupal',
      'username' => 'root',
      'password' => '',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => 'main_',
    ),
  ),
);
 
//sitesblog.example.comsettings.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_',
      ),
    ),
  ),
);

热门栏目