使用WordPress MultiSite(WPMS),每个创建的站点都有一个远程数据库

时间:2018-08-22 作者:samjco

所以,我很想找到一种方法,为每个新添加的子站点使用具有不同远程数据库的WPM。

我所知道的。我知道远程数据库可以位于其自己的服务器上,以允许远程站点连接使用DB用户的附加权限,并以%通配符的形式将IP绑定到DB或IP地址(如果您的服务器是网络的一部分)。

请参见:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql

对我来说,更快的方法是使用GoPanel:https://gopanel.io/它允许我在Linux服务器上创建和配置MySQL数据库。

我已经尝试并测试了手动操作,或者使用插件Multi-DB,至少在某种程度上接近成功(https://github.com/wpmudev/multi-db).

但是,Multi-DB允许分离创建站点的数据库,但只能在单个数据库服务器中分离。然而,我想为每个新创建的子站点创建一个数据库服务器。

因此,我的行动计划是编写一个带有几个文本字段(DB IP、DB User、DB Password)的简单插件,并将这些字段显示在WPMS的站点选项区域中。

因此,我正在寻找以下方面的指导:

A) 位置或连接到站点选项以添加我的字段。

B) 我可以在何处以及如何更改WordPress MS默认逻辑,即网站创建后如何绑定到数据库/表。并用我的字段选项替换它们。

请协助。

1 个回复
SO网友:De Coder

到加载插件时,更改数据库已经太迟了。

您可以在wp配置中添加一系列开关/选项。php

switch ( $ _SERVER[\'HTTP_HOST\'] ) {
    case \'somedomain.com\': 
        define(\'DB_NAME\', \'zzzzzz\');
        define(\'DB_USER\', \'yyyyyyy\');
        define(\'DB_PASSWORD\', \'xxxxxx\');
        define(\'DB_HOST\', \'localhost\');
        break;
    case \'anotherdomain.com\': 
        define(\'DB_NAME\', \'aaaaaa\');
        define(\'DB_USER\', \'bbbbb\');
        define(\'DB_PASSWORD\', \'cccccc\');
        define(\'DB_HOST\', \'localhost\');
        break;
}
但这将不会像多站点那样被管理,并且可能会产生许多意外的结果,因为数据库和文件可能不匹配(如果一个实例更改了另一个实例所期望的文件)

我想我不想试试。

结束

相关推荐

Wpdb->prefix和table_prefix有什么不同

wpdb->prefix和table\\u prefix之间有什么不同我想安装pluginfor示例的db table$wps_user_visits_table_prefix = $wpdb->prefix.\'wps_user_visits\'; 等于$wps_user_visits_table_prefix = $table_prefix.\'wps_user_visits\'; 还是不同?