【PHP/SQLiteでCMS作ってみる】SQLiteデータベース管理ツール『phpLiteAdmin』セットアップや日本語化・テーブル作成やってみた
| 更新: 2024/02/10 | 4060文字
今回は、現在管理人が取り組んでいる『PHP/SQLiteでCMS作ってみる(自社案件・依頼じゃないよ)』について、SQLiteデータベース管理ツール『phpLiteAdmin』を使ってみたので、その内容を紹介します。とりあえず最初の段階として、簡易型データベースSQLiteを管理ツール『phpLiteAdmin』で操作みたいなことを行います。早速内容を確認していきましょう。
目次
SQLite/phpLiteAdminについて
開発をされている方はすでに聞いたことがあったり、実際に使ったことがある方も多いでしょう。SQLite/phpLiteAdminについては、『MySQL/phpmyAdmin』と似ていますが中身は別物なので、簡単にですが特徴を押さえてみましょう。
SQLiteとは?
パブリックドメインの軽量なデータベース管理システムで、サーバとしてではなくアプリケーションに組み込んで利用されているそうです(実はAndroid端末の標準ライブラリに使われているのは、最近初めて知りました笑)。
『データ型はNull/Integer/Real/Text/BLOB』『トランザクションのサポート』など特徴はありますけど、MySQLなどと比べて『シンプル軽量だが同時アクセス過多に弱い』といった面があるので、『1日数千pv程度・掲示板みたいにいろいろなユーザーが書き込みでデータベース更新しない』といった、小中規模のサイトに向いてそうな感じはします。
SQLite(公式 英語)
https://sqlite.org/index.html
SQLiteファイルへの同時アクセス過多によるロックについて(教えてgoo)
https://oshiete.goo.ne.jp/qa/4310712.html
phpLiteAdminとは?
『MySQLデータベースでいう、phpmyAdminみたいなツール』という感じでしょうか。SQLiteにもこの手のツールはありました。これは公式のテストページで動かしている様子です。
内部のデータを確認したりデータベースを作ったり削除したりするほか、『インポート/エクスポート,SQL実行』みたいなこともできて、phpmyAdminみたいに使えます。ただし、『PHP8に対応しているのは、最新開発版(Current development version)』というのもあったので、日本語情報が少なく、押さえておかないと動かなくてハマるかも。
phpLiteAdmin(公式 英語)
https://www.phpliteadmin.org/
phpLiteAdmin セットアップ方法
ダウンロード(バージョン注意)&configの設定
まずは、公式ページからダウンロードします。このとき、設置しようとしている環境のPHPバージョンによっては、Current development versionを選択することになると思います。 というのも、管理人がやってみたところ『PHP8のxammpではStable versionが動かない』という状況でした。 対応は以下の通りです(Current developmentはPHP8.1.6のxammpで確認しました)。
Stable version phpLiteAdmin 1.9.8.2 |
PHP5.4.0~7.3.9 |
---|---|
Current development version (1.9.9-dev) |
PHP8.1.6動作確認 |
ダウンロードすると、このようなファイルが入っています。少ないので管理がラクそうです。たまにある『ファイル名を変える』というのをやります。管理人は『phpliteadmin.config.sample.php→phpliteadmin.config.php』『phpliteadmin.php→index.php』というようにファイル名を変えました。 (*このほか、『サーバー側で可能な場合は、公開時にはこれらを公開ディレクトリ外に置く』というのもあります。セキュリティ上の理由です。公開ディレクトリに置く場合はアクセス制限などをつけます。)
パスワードは.configファイル内に変更するところがあります。最初はadminになっているので、ここは変えましょう。データベースファイルのディレクトリも変えられます(変更しない場合は同じディレクトリに生成されました)。
phpLiteAdmin ダウンロードページ(公式 英語)
https://www.phpliteadmin.org/download/
phpLiteAdminを日本語化するには?
wikiのLocalizationページに、各種言語設定のファイルがあります。Japanese localization for 1.9.8のリンクからzipをダウンロード&解凍して『lang_ja.php』をゲット。
『lang_ja.php』をphpLiteAdmin関連ファイルと同じフォルダに入れて、configの言語設定を変更すればokです。
phpLiteAdmin Localization()
https://bitbucket.org/phpliteadmin/public/wiki/Localization
ログイン&データベースの作成
そのあとは、データベースを作っていきます。まずは、ここまでの状態になったら設置した本体ファイルにアクセスすると、ログインできます。 認証がパスワードだけなので『basic認証などが必要』は、よく言われているようです。
入ったら、初回にSQLiteデータベースの作成。データベースの名前をまず決めます。データベースを作ると、configで設定したフォルダに、データベースのファイルが作成されます。設定しない場合は、同じディレクトリにできました。
データベースを作るとこんな感じに。名前は適当にcms_testにしました。雰囲気としてはphpmyAdminに結構近い感じです。ただし、まだテーブルもなくてデータも入っていないので、次はこちらの対応をしていきます。
テーブルの作成
で次は、データを入れるテーブルを作ってみます。CMSなどのユーザーテーブルを想定した、 『user_id(id・プライマリ&オートインクリメント),user_name(ユーザー名),user_email(メルアド),user_pass(パスワード)』で行きたいと思います。
なお、データ型は「NULL(null値)」「INTEGER(符号付整数)」「REAL(浮動小数点数)」「TEXT(テキスト)」「BLOB(Binary Large OBject)」の5種類になるそうです。
テーブル名やフィールド・個数・型を考えたあとは、まずテーブルを作成します。『CREATE TABLE 〇〇 (‘□□’ INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, ~);』のようなSQLを実行するほか、『テーブル作成→実行』でもok。テーブル名は仮に『c_users』としました。
とりあえずユーザーテーブル作成。この段階ではまだデータが入っておらず、フィールドも定義されていません。見た感じだと、データ型・プライマリー設定・オートインクリメント(値の自動採番)・初期値のような設定が可能なようです。
データ型を指定して、フィールドを作っていきます。フォーマットは『datetime』など、いろいろある様子。user_idにはプライマリー・オートインクリメント設定を行いました。
こんな感じで、c_usersテーブルにフィールドが作成されました。
テーブルにデータ挿入してみる
ゆくゆくは、管理画面からデータベース書き込みを行う予定ですが、まずはphpLiteAdmin上からテーブルにデータ挿入してみます。上部の挿入タブをクリックで、この画面に。phpmyAdminにもこういう画面ありましたね。user_idはオートインクリメントかけているので、空でok(1が入る)。trimなどのほか、md5などのハッシュ関数もありますが、ある程度のスキルがある相手には復号されるので注意しましょう。 最後に挿入ボタンを押すと、データが入ります。
データが入りました。
あとがき・まとめ
- SQLiteというコンパクトなデータベースシステムがあり、phpLiteAdminで管理できる
- 雰囲気だけでなく、操作感もphpmyAdminにかなり近い
- プライマリー・オートインクリメント設定などもできる
- ハッシュ関数などもphpLiteAdminで使えるが、アルゴリズムがある程度スキルがある人間には突破されやすい
まとめると、こういうところでしょうか。MySQL/phpmyAdminを扱ったことがあると、かなりとっつきやすい印象です。次回以降もSQLite&phpLiteAdminを組み込んでアプリケーションを作っていこうかと思っています。
【カテゴリ】- PHP
【タグ】- SQLite, データベース