SOFTELメモ

</> 技術者募集

adminerでsqlite3を使えるようにする

問題

adminerは以前sqliteが使えたと思うのですが、今は使えないのですか?

adminer

答え

今はそのままアクセスしても使えないようになっている。
(ログインなしでファイルのパスだけ指定すればアクセス可能なのは危険ということでしょうか。)

以下のように別のファイルを作って、少しphpを書いて、本体をincludeすると使えます。

<?php
// adminer_object を定義
function adminer_object() {
	include_once "plugin.php";
	include_once "login-password-less.php";
	return new AdminerPlugin(array(
		new AdminerLoginPasswordLess(password_hash("YOUR_PASSWORD_HERE", PASSWORD_DEFAULT)),
	));
}

// 本体をinclude
include "./adminer-4.6.3.php";

plugin.phplogin-password-less.php は、https://www.adminer.org/en/plugins/ からダウンロードできます。ダウンロードして、include できるところに置きます。

せっかく adminer が1ファイルなのに、ファイルが増えるのが嫌な場合は、上のコードのincludeしている個所にコピー&ペーストで plugin.php とlogin-password-less.php を書いてもよい。

<?php
// adminer_object を定義
function adminer_object() {
	class AdminerPlugin extends Adminer {
		//(省略)
	}
	class AdminerLoginPasswordLess {
		//(省略)
	}

	return new AdminerPlugin(array(
		new AdminerLoginPasswordLess(password_hash("YOUR_PASSWORD_HERE", PASSWORD_DEFAULT)),
	));
}

// 本体をinclude
include "./adminer-4.6.3.php";

パスワードそのものを見られたくない場合は、どこかで password_hash(“任意のパスワード”) の実行結果を取得して、それを書く。

そうして作ったphpにアクセスすると、いつも通りのログイン画面が表示される。

いつもどおりのログイン画面

データベース種類は SQLite3 を選択して、パスワードだけ入力したらログインできる。

ログイン前でもログイン後でもよいので、データベースを指定するところでファイルのパスを指定したらOK。

関連するメモ

コメント