データベース管理ソフト「Exment」を MySQL 8.0.23 でも入れたい! | よしにぃのあふぱくブログ

データベース管理ソフト「Exment」を MySQL 8.0.23 でも入れたい!

最近、趣味でもプログラミングをしているのですが、無料のソフトウェアである、「オープンソースソフトウェア(OSS)」をカリカリしている僕です。

そんな中、PHPのオープンソースソフトウェア「Exment(エクスメント)」というアプリに出会いました。

Exment | エクスメント – システム無料、基本機能充実。シンプルで軽快なオープンソースWebデータベースをあなたに

すべてのデータ管理を塗り替える

PHPのオープンソースのフレームワーク「Laravel製」のソフトウェアです。
Excel や Google ドキュメントなどの表計算の伝票や、ちょっとしたデータの登録などをこちらのソフトウェアに置き換えることで、脱スプレッドシート管理ができる!というものです。
また、データベースの項目などは自由に登録、編集、削除ができるので、自分の思っているデータベースとしてかんたんにカスタマイズが可能です。

さらに、仕事上で使うことのできる「顧客管理」「タスク管理」個人でも使える「スケジュール管理」などが使用できます。個人で使う分にはもちろん、オフィスでも使えるのが魅力的です。

バージョンチェックでエラー…

Exment をインストールするとぶつかるのが、MySQL のバージョンの壁。
Exment は、公式では MySQL のバージョンが、5.7.8 ~ 8.0.0 と限られています。自分の環境では、最近 MySQL のバージョンアップを実施しており、 8.0.23 となっていました。

mysql –version
mysql Ver 8.0.23 for Linux on x86_64 (MySQL Community Server – GPL)

これではインストールができないということで、中身を見ることに。

バージョンチェックをしているところを無理やり書き換える

Exment を格納しているディレクトリに移動して、
「vi vendor/exceedone/exment/src/Model/Define.php」 と入力し、エディタを開きます。

DATABASE_VERSION という定数の箇所の max_lt という箇所が、データベースのアプリケーションで使用できる上限値。この場所を上げることで上位バージョンのインストールも可能となります。

※僕の場合は、8.0.23 だったので、「8.0.99」に変更して、無事次の画面に進みました
※システム値の変更は自己責任です。変更によりシステム動作が不安定になることがあります

            
    public const DATABASE_VERSION = [
        'mysql' => ['min' => '5.7.8', 'max_lt' => '8.0.0'],  <====★
        'mariadb' => ['min' => '10.2.7'],
        'sqlsrv' => ['min' => '13.0.0.0'],
    ];
    public const PHP_VERSION = [
        '7.1.3',
        '7.5.0',
    ];
    public const CUSTOM_TABLE_ENDPOINTS = [
        'column',
        'copy',
        'form',
        'formpriority',
        'formpublic',
        'operation',
        'relation',
        'view',
        'data',
    ];
    public static function FILE_OPTION()
    {
        // get max size
      

これを行うことで、インストール中のエラーメッセージも出てこなくなり、次のステップを次に進むことができます。

インストール前に 500 エラーが出ることがある

No application encryption key has been specified.となったときの対応方法 – Qiita

エラーログを見ると「No application encryption key has been specified」と出たことがありました。
上記の通り、.env ファイルがなかったせいで、インストールディレクトリの直下に「.env」ファイルを生成する、APP_KEY を生成することで解決します。

cat .env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
APP_DEBUG=true
APP_URL=http://localhost
APP_LOCALE=ja
APP_TIMEZONE=Asia/Tokyo