Adminer
Adminer という Webアプリケーション があります。データベースを Webブラウザ ベースで操作できるアプリケーションです。phpMyAdmin を代替するものとして作られたそうです。
しかしながら、MySQL だけでなく、PostgreSQL、SQLite、MS SQL、Oracle、Firebird、SimpleDB、Elasticsearch、MongoDB などもこれ一つで扱うことができます。
構成ファイルも PHP のファイル一つだけのシンプルなものです。日本語にも対応しています。
インストール方法
インストールは簡単です。公式サイトの Download(Downloads)から、Adminer X.X.X (.php, XXX kB)
を落として任意の場所に設置すればいいだけです。English Only
やfor MySQL
を銘打ったものがありますが、あえて選ぶ理由はないと思います。
拡張設定
Adminer には「拡張設定」機能があります。「拡張設定」というのはあまり正しい言い方ではないかもしれません。公式ページを見てもらうとわかるのですが、関数やメソッドを自由に利用して独自の拡張ができる、という意味です。
「拡張設定」のサンプルコードは公式ページに記載されているとおりです。「function adminer_object()
~class AdminerSoftware extends Adminer
~『各メソッドの定義』」という記述の流れです。最後にinclude "/hoge/adminer.php";
などのようにダウンロードした PHP ファイルをinclude
するのを忘れないようにしてください。
実際に Adminer を利用する場合にアクセスするファイルは、この「拡張設定」で作成したファイルになります。任意の名前を付けて任意の場所に設置して大丈夫です。include
場所のミスには気をつけましょう。
SQLite の利用に際しては拡張設定が必須
下記の内容は 2018/10/25 時点では誤りです。こちら の記事を参照して下さい。
SQLite はご存知のとおり、ユーザー名やパスワードといった概念がありません。したがって SQLite を利用する場合は必ず上記の拡張設定を利用する必要があります。function login($login, $password)
を(だけを)以下のように設定すればいいでしょう。
<?php function adminer_object() { class AdminerSoftware extends Adminer { function login($login, $password) { // validate user submitted credentials return ($login == 'hogehoge' && $password == 'fugafuga'); } } return new AdminerSoftware; } include "./adminer.php";
SQLite 以外のサーバにもアクセスする場合はさらに拡張設定を行う
上記の SQLite 用の設定をすればわかると思いますが、例えば SQLite とともに MySQL にもアクセスしたい場合、function login($login, $password)
でユーザー名とパスワードの組み合わせを上書きしてしまったので、MySQL のユーザー名とパスワードを送ることができません。
この場合は拡張設定のfunction credentials()
を使ってやります。ここに MySQL のアドレス(ポート)とユーザー名、そしてパスワードを書きます。配列なので、複数のデータベースの接続情報を書くことができます。前述のものとあわせたサンプルコードは以下のとおりです。
<?php function adminer_object() { class AdminerSoftware extends Adminer { function credentials() { // server, username and password for connecting to database return array('hostname:port', 'hogohogo', 'fugofugo'); function login($login, $password) { // validate user submitted credentials return ($login == 'hogehoge' && $password == 'fugafuga'); } } return new AdminerSoftware; } include "./adminer.php";
これで、hogehoge
とfugafuga
で Adminer に一律ログインできます。
軽快でおすすめ
Adminer は PHP のファイルひとつのアプリケーションで、とても扱いやすく軽量、軽快です。拡張機能や「テーマ」もあり(adminer.css
という名前でアプリと同じディレクトリに置けばいいだけです)、応用性も高いです。超大規模なデータベースだとどうなるかは分かりませんが、開発環境や個人レベルの環境では大変便利に使えると思います。