Adminer で SQLite 3 を扱う

Adminer とは

phpMyAdmin のような Webブラウザ からデータベースを操作するアプリケーションです。

Adminer で SQLite 3 を扱う

Adminer は使用する際にユーザ名とパスワードを用いたログインが求められます。

f:id:gregminster:20181025134328p:plain

そして SQLite 3 にはユーザ名もパスワードも必要ありません。そのため、素の状態の Adminer では SQLite 3 を扱うことができません。

どうするか

プラグインを用いると SQLite 3 も扱えるようになります。

プラグインの導入方法

結構めんどくさいです……。なおプラグイン関連は このページ にまとまっています。

1. プラグインの大元のファイルである plugin.php を配置する

プラグインページ から plugin: Required to run any plugin をダウンロードします。置く場所は慣例に従って ./plugins/plugin.php とします。

このファイルは編集する必要はありません。

2. SQLite3 用に login-password-less.php を配置する

プラグインページ から login-password-less: Enable login without password (example) をダウンロードします。置く場所は慣例に従って ./plugins/login-password-less.php とします。

このファイルは編集する必要はありません。

3. Adminer の本体を配置する

オフィシャルページ から最新版の Adminer をダウンロードします。2018/10/25 現在では 4.6.3 が最新版になります。

Adminer 4.6.3 (.php, 457 kB), English only (.php, 311 kB)

落としたファイル名はたとえば adminer-4.6.3.php のようにバージョン名が付与されているので、adminer.php に変えるとスマートになります*1

4. index.php を作る

上記の3つのファイルをすべてインクルードした index.php というファイルを作ります。このファイルがユーザが Webブラウザ でアクセスするファイルとなります。

書き方の例は以下のところにあります。下記の YOUR_PASSWORD_HERE のところにパスワードとして設定したい文字列を入れます。

下記が上記の例の具体的な内容です。このままですとこれまでの説明と合致しない部分がありますので修正します。

<?php
function adminer_object() {
    include_once "../plugins/plugin.php";
    include_once "../plugins/login-password-less.php";
    return new AdminerPlugin(array(
        // TODO: inline the result of password_hash() so that the password is not visible in source codes
        new AdminerLoginPasswordLess(password_hash("YOUR_PASSWORD_HERE", PASSWORD_DEFAULT)),
    ));
}
include "./index.php";
  • plugins ディレクトリの場所を正しく指定するため、 include_once "../plugins/plugin.php"; のところを include_once "./plugins/plugin.php"; に修正します
  • plugins ディレクトリの場所を正しく指定するため、 include_once "../plugins/login-password-less.php"; のところを include_once "./plugins/login-password-less.php"; に修正します
  • include "./index.php"; のところを「3.」でダウンロードしたファイル名に一致させます(例えば ./adminer.php)

以上のようにして index.php が作れました。

5. index.php にアクセスする

あとは PHP が処理できる Webサーバ に上記のファイル群を置いて index.php にアクセスします。ログイン画面が表示できたかと思います。

6. ログイン情報を入力してログインする

以下の画像のように、ログイン情報を設定します。

f:id:gregminster:20181025155342p:plain

  • データベース種類
    • SQLite 3
  • サーバ
    • サーバの場所*2
  • ユーザ名
    • 空っぽでいいです
  • パスワード
    • 「4.」で設定したパスワードを入れます
  • データベース
    • SQLite 3 ですので直接ファイルを指定します

これでログインできるはずです。

補足

  • login-password-less.php を用いるのはあくまでローカル内の使用に限定するようにしましょう
  • Wiki に Enable sqlite3 という項目がありますが、現時点ではこのとおりにできません*3

*1:変えなくてもいいです

*2:SQLite 3 なので localhost のまま(空欄)になると思います

*3:リンク先のファイルが存在しないなど

Powered by はてなブログ