phpMyAdminを構成して複数のサーバーにアクセスする方法は?


13

phpMyAdminを使用して複数のMySQLサーバーを管理できるようにUbuntuを構成する方法は何ですか?データベースパラメータはで設定され/etc/dbconfig-common/phpmyadmin.confますが、単一のサーバーの接続パラメータ用のスペースしかありません。私はにそれをハック可能性/etc/phpmyadmin/config-db.php/etc/phpmyadmin/config.inc.php、私はもっとエレガントな方法がなければならないと仮定します。


これを行うための解決策を見つけたことがありますか?言及したファイルの1つにハッキングしましたか?
ナンネ

このチュートリアルでは、1つのphpMyAdminインストールから複数のMySQLサーバーを管理する方法について説明します。セキュリティ上の理由から、phpMyAdminとリモートMySQLサーバー間の通信はSSL暗号化を使用しています

回答:


8

かなり古い質問ですが、検索に関連しています。

phpMyAdminは$cfg['Servers']、構成ファイルにプレーンなPHPを使用し、配列を使用して構成済みのサーバーを取得します。

したがって、適切な方法は、追加する/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)を増やす必要があり、localhostへの接続を維持する場合は1を使用しないでください。

phpMyAdminパッケージを使用している人がそれを考えてい$iた場合、conf.dディレクトリからのファイルを含むforeachに増分変数を追加できたので、それをインデックスとして使用でき、心配する必要はありません。手動で増やしますが、悲しいことにそうではありません。ただし、自分で行うことができます。


[2019]:新しいPHPバージョンでは、このより簡潔な代替構文が許可されています。

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

/etc/phpmyadmin/conf.d/slaveA.conf.phpにリストされている最小限のコンテンツを入れてみたところ、PHPMyAdminページの上部にコンテンツが表示されていました。同じコンテンツをconfig.inc.phpの下部に入れたところ、うまくいきました。そのインクルードに関する何かがそれを台無しにしているようです。それ以外の場合、これは更新で強制終了されないカスタム構成を作成するための予想される方法のようです。
フリッカーフライ

1
@flickerfly、遅い答えですが、設定ファイルのコードは、<?php他のPHPスクリプトのように、で始まる必要があります。
マーク

4

これが最も正確な方法だと思います:

最初にパスワードを設定します:

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

次に、セキュリティを無効にします。

sudo pma-configure

次に、http:// yourserver / phpmyadmin / setupにアクセスします(ここで、ブラウザーは認証を要求し、ユーザーはadminであり、パスワードは最初のコマンドで記述したものです)。そのウィザードでサーバーを構成し、再びセキュリティ:

sudo pma-secure

このメソッドで生成された設定ファイルは/var/lib/phpmyadmin/config.inc.phpに保存されます。
マイケルロートン

この方法で生成されたこの設定ファイルは、/ etc / phpmyadmin / config.inc.phpのメイン設定ファイルに含まれます。phpMyAdminセットアップスクリプトはUbuntuでバグがあり、既存の構成をロードしません(構成するたびにゼロから開始する必要があります)。また、生成される構成には、Blowfishシークレットのようなものが含まれており、メインの構成ファイルによって上書きされます。最初のサーバー(1)は、config-db.phpのサーバー値を使用するメイン構成ファイルによって上書きされることがわかります。
マイケルロートン

2

私は次のことを想定しています:

  • /etc/phpmyadmin/ 構成を追加する最も論理的な場所になります
  • /etc/phpmyadmin/config-db.phpデフォルト(ローカル?)構成の場所です。これは、デフォルトであるため、1つのdbのみです
  • /etc/phpmyadmin/config.inc.phpデフォルトのデータベースを読み取り、1つにします。少なくともこれが使用されるため、データベースがあります。設定で何かが変更された場合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

これは最高の場所のようです。


1

phpMyAdminのドキュメントによると、ファイルで$cfg['Servers']定義された配列に複数のサーバーを定義できconfig.inc.phpます。


2
汎用のphpMyAdminインストールでは、はい。しかし、Ubuntuにはconfig.inc.phpファイルのその部分を生成する独自の構成ファイルがあり、Ubuntuの構成をオーバーライドすることなく、Ubuntuで構成する方法を知りたいです。
マイクスコット

そうですか。ファイル内のコメントは言うYou can regenerate it using: dpkg-reconfigure -plow phpmyadmin。私はあなたがそれを試したと思いますか?(現在、実稼働システムでは実行しません)それ以外...手動で変更されたファイルは、上書きされる前に更新時にプロンプ​​トが出される必要があります。
カールステンティエル

2
はい、ファイルconfig-db.phpを再生成できますが、データベース接続パラメーターのソースとなる構成ファイル(/etc/dbconfig-common/phpmyadmin.conf)には、1つのデータベースサーバーを構成するスペースしかありません。複数のデータベースサーバーを構成する方法を知りたいです。
マイクスコット

+ Mcott Scott、$ cfg ['Servers']をconf.d /ファイルで動作させることはできませんでしたが、config.inc.phpに入れるとうまくいきました。includeステートメントが混乱するバグがあると思います。
フリッカーフライ

1

メインの設定ファイルはに保存され/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/examples含まれていconfig.manyhosts.inc.phpます。このファイルはに追加できます/etc/phpmyadmin/conf.diホストを作成する前に変数を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);
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.