Adminer とは
phpMyAdmin のような Webブラウザ からデータベースを操作するアプリケーションです。
Adminer で SQLite 3 を扱う
Adminer は使用する際にユーザ名とパスワードを用いたログインが求められます。
そして 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. ログイン情報を入力してログインする
以下の画像のように、ログイン情報を設定します。
- データベース種類
- SQLite 3
- サーバ
- サーバの場所*2
- ユーザ名
- 空っぽでいいです
- パスワード
- 「4.」で設定したパスワードを入れます
- データベース
- SQLite 3 ですので直接ファイルを指定します
これでログインできるはずです。
補足
login-password-less.php
を用いるのはあくまでローカル内の使用に限定するようにしましょう- Wiki に Enable sqlite3 という項目がありますが、現時点ではこのとおりにできません*3