如何配置 phpMyAdmin 来访问多台服务器?

如何配置 phpMyAdmin 来访问多台服务器?

在 Ubuntu 中,如何配置 phpMyAdmin 以便使用它来管理多个 MySQL 服务器?数据库参数在 中设置/etc/dbconfig-common/phpmyadmin.conf,但其中只有单个服务器的连接参数空间。我可以将其破解为/etc/phpmyadmin/config-db.php/etc/phpmyadmin/config.inc.php,但我认为必须有更优雅的方法。

答案1

相当老的问题,但与搜索仍然相关。

phpMyAdmin 使用纯 PHP 作为配置文件,并使用$cfg['Servers']数组来获取配置的服务器。

所以恰当的/etc/phpmyadmin/conf.d方法是为每个要添加的服务器添加一个新的配置文件。只需以 结尾文件名.php即可将其包括在内,但为了保持一致性,最好使用它your_new_server.inc.php

给定配置文件的最小内容将是:

<?php // let the interpreter know this is code
$cfg['Servers'][2]['host']     = 'THE_HOST';
$cfg['Servers'][2]['user']     = 'THE_USER';
$cfg['Servers'][2]['password'] = 'THE_PASSWORD';

正如另一个答案所述,您可以检查/usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php文件以获取更多参数。

重要的:您必须为每个新文件增加数组的索引 (2),如果您想继续连接到本地主机,请避免使用 1。

如果 phpMyAdmin 软件包的开发人员考虑到了这一点,他们本可以$i在包含目录中文件的 foreach 中添加递增变量conf.d,这样您就可以将其用作索引,而不必担心必须手动增加它,但遗憾的是事实并非如此。不过你可以自己做。


[2019]:较新的 PHP 版本允许使用这种更简洁的替代语法:

<?php $cfg['Servers'][] = ['host'=>'my_host', 'user'=>'my_user', 'password'=>'my_pass'];

答案2

我认为这是最准确的方法:

首先设置密码:

sudo htpasswd -c /etc/phpmyadmin/htpasswd.setup admin

然后禁用安全性:

sudo pma-configure

然后转到http://你的服务器/phpmyadmin/setup(此处浏览器要求进行身份验证,用户是管理员,密码是您在第一个命令中写入的),使用该向导配置您的服务器,完成后,再次设置安全性:

sudo pma-secure

答案3

我假设如下:

  • /etc/phpmyadmin/是添加配置最合理的地方
  • /etc/phpmyadmin/config-db.php是默认(本地?)配置的位置。这是因为这是默认配置,所以只有一个数据库
  • /etc/phpmyadmin/config.inc.php读取默认数据库,因此它有一个。至少这个被使用,所以你有一个数据库。如果你的配置中发生了变化,也会config-db.php改变,所以你的文件的“本地”更改不会被修改

因此我的结论是在此部分下方添加一个额外的服务器:

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    //reading from config-db.php
}

//$i++ was allready done in if above
//Adding extra servers
 $cfg['Servers'][$i]['host'] = 'serverhost.host.tld';
 $cfg['Servers'][$i]['extension'] = 'mysqli';
//...etc

这看起来是最好的地方。

答案4

主配置文件存储在 中/etc/phpmyadmin/config.inc.php。此文件包括

  • 河豚的秘密来自/var/lib/phpmyadmin/blowfish_secret.inc.php
  • 从 phpMyAdmin 安装脚本生成配置(diegueus9 的方法) /var/lib/phpmyadmin/config.inc.php
  • /etc/phpmyadmin/config-db.php生成的DB值 可以使用 进行修改/etc/dbconfig-common/phpmyadmin.conf/usr/sbin/dbconfig-generate-include/etc/dbconfig-common/phpmyadmin.confdpkg-reconfigure -plow phpmyadmin
  • 额外的配置文件来自/etc/phpmyadmin/conf.d/*.php

一些示例配置片段包含在内/usr/share/doc/phpmyadmin/examplesconfig.manyhosts.inc.php此文件可以添加到/etc/phpmyadmin/conf.d。它的工作原理是i在创建任何主机之前将变量重置回 1,以便它覆盖在中设置的主机/etc/phpmyadmin/config.inc.php

如果您想要进行更高级的配置,您可能需要更改文件/etc/phpmyadmin/config.inc.php并可能使用添加其他配置扩展/etc/phpmyadmin/conf.d

要向旧配置文件添加对附加配置的支持,您可以创建目录/etc/phpmyadmin/conf.d,然后将以下 PHP 代码添加到底部/etc/phpmyadmin/config.inc.php

/* Support additional configurations */
foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename) {
        include($filename);
}

相关内容