SQLite3によるデータベース接続設定エラーについて

【環境情報】
・baserCMSのバージョン:5.1.0
・インストール環境:WSL2(Ubuntu Server 24.04 LTS)
・Webサーバ(Apache)のバージョン:2.4.62
・データベース(SQLite3)のバージョン:3.46.1
・PHPのバージョン:8.3.10
・PHPスキル(自己評価):E

初投稿失礼いたします。
baserCMSのインストール作業を上記環境で進めておりましたが、ステップ3のデータベース設定にて、「次のステップへ」ボタンを押下した際に「データベースの構築中にエラーが発生しました。The “connection” option does not exist.」というエラーメッセージが表示されてしまい、先へ進めない状態となっております。

お手数をおかけしてしまい恐縮ですが、打開策をご教示いただけますと幸いです。

《補足情報》
以下は logs/error.log に格納されておりましたエラーログです。

warning: The connection is going to be closed but there is an active transaction.

@Miru
こんにちは。
baserCMS5のドキュメントを確認したところ、現在提供されているバージョンではSQliteは未対応のようです。(対応予定だが現在はMySQLのみ対応とこのと)

MySQLでのインストールを検討いただくか、SQLiteが必須であればbaserCMSの4系で環境構築いただくのがが良いかもしれません。

「いいね!」 1

@maeno
SQLiteに限らず、MySQLでも同様にエラーが出ると思います。

7月18日にリリースされた時点での5.1.0では、特に問題なく(見かけ上)インストールが完了していましたが、4日ほど前にcomposer.jsonを調整して再リリースされて以降は、ステップ3でこけていますね。

ちなみにSQLiteは、5.0系5.1系いずれでも、現時点では利用できると思うのですが?
ご指摘の情報は、昨年の3月時点のことですので、相当古いかと。

「いいね!」 1

@Miru
解決策ではありませんが、現時点で5.0.20であれば、おそらく問題なくインストールはできるかと思います。
いったん、5.0.20で構築して、5.1系の準備が整った時点でアップデートされてはどうでしょうか?

「いいね!」 1

@GUSSAN
ご確認ありがとうございます。
SQLite利用可能だったのですね。確認不足失礼しました。
ドキュメントが古いとのことでしたので、該当ドキュメントの修正依頼のプルリクを作成しました。

@Miru @GUSSAN
5.1.0でSQLiteに限らずMySQLでも同様にエラーが出るということですので、
よろしければ本件についてのissueを作成いただけないでしょうか?

「いいね!」 1

@maeno
クリーンなインストール手順における事象ですし、逆に言えば、クリーンなインストール手順が故に、多分に環境依存ということもあるかとおもいますので、是非、開発環境で再現性を確認いただき、再現性があればissue化していただければと思いますが、いかがでしょうか?

「いいね!」 1

@maeno @GUSSAN
お忙しい中で様々な解決策を議論していただき、誠にありがとうございます。
つきましては、baserCMSのバージョンを「5.0.20」に変更して正常に構築完了できるかを検証してみます。
検証後に構築の可否をご報告いたします。

「いいね!」 1

先ほど、GitHubで5.11のインストール絡みのアップデートがあった様でしたので、テストしてみました。
以下、結果をお知らせします。

SQLite3は、やはりステップ3でエラー 、MySQLでは、問題なくインストール完了しました。

ただ、SQLite3のエラー表示は、以下の様に変わりました。

5.1.0の場合:「データベースの構築中にエラーが発生しました。The “connection” option does not exist.」

5.1.1の場合:「データベースの構築中にエラーが発生しました。コアプラグインのインストールに失敗しました。」

「いいね!」 1

@GUSSAN
検証していただきありがとうございます。
やはりSQLite3は、ステップ3でエラーが発生するのですね…。(コアプラグインのインストール失敗エラーは初めてみました)

私も結局、baserCMSのバージョンを「5.0.20」に下げた後、SQLite3ではなくMySQLでインストールを行い正常に完了することができました。
しばらくはこの環境で作業しようと思います。

「いいね!」 1

@Miru
現時点で5.1系環境でのサイト構築(アプリ開発?)に拘って、本件の不具合を追いかけることはないのかなと私も思います。
5.0.20は、リリースノートを見ると「baserCMS5のマイナーアップデート版であるバージョン 5.1.0 へアップデートするための準備版」ということですので、おそらく無理なく5.1系にアップデートできるはずですので。
5.1系がcake5系に対応しているという大きな違いはあるものの、現時点でcake5系対応に拘る理由は、ほぼないでしょうし、インストールやアップデートに伴う諸々の不具合が解消(一段落)した時点で、アップデートすれば良いと思います。
ですが、当然5.0.20と5.1.0を比較すれば、5.1.0(5.1.1の方がもっと)の方が諸々のバグフィクスが進んでいるわけですから本来は安定して動作するはずですし、いずれは5.1系にアップデートされた方が良いとも思います。

安定性を求めて不安定(リスク)を抱え込むこともあるわけですから、そのあたりのジレンマとサイト構築に必要な要件を冷静に見合わせて、合理的な選択をその時々にされるのが良いかと思います。

もう、1点。
要件が許すのであれば、MySQLを選ばれるのも賢明だと思います。MySQLが良くてSQLiteが悪いとか、そういうことではなく、QAの重点がMySQLにあるように思いますので、不具合に遭遇するケースがMySQLを利用する方がきっと減ると思います。(これまでもそうでしたし)

同様の現象が起きています。

【環境情報】
・レンタルサーバー名:ロリポップ(エコノミープラン)
・PHPのバージョン:8.3(CGI版)
・インストール時のデータベースタイプ:SQLite

いくつか試してみました。

5.1.0
同様にステップ3でエラーします。

データベースの構築中にエラーが発生しました。
The “connection” option does not exist.

Logsフォルダのerror.logにも同様のエラーが出力されます。

warning: The connection is going to be closed but there is an active transaction.

5.1.1
同様にステップ3でエラーします。

データベースの構築中にエラーが発生しました。
コアプラグインのインストールに失敗しました。

Logsフォルダにはなにもは出力されません。

5.0.20
インストールできました。
ただし、BcUpdateSupporterを実行し、5.1.0に自動アップデートすると壊れます。
エラー画面です。

その時のerror.logの一部です。

error: [Cake\Database\Exception\DatabaseException] SQLSTATE[HY000]: General error: 1 near “(”: syntax error in /home/users/0/sub.jp-e-oji/web/v4.e-oji.jp/vendor/cakephp/cakephp/src/Database/Schema/Collection.php on line 158

Caused by: [PDOException] SQLSTATE[HY000]: General error: 1 near “(”: syntax error in /home/users/0/sub.jp-e-oji/web/v4.e-oji.jp/vendor/cakephp/cakephp/src/Database/Driver.php on line 353

フォルダ構成が丸見えですが、パスによる影響も考えて、あえてそのままにしておきます。
何かの参考になればありがたいです。

@krhsn1 Dockerではあるのですが、PHP8.3.8 の環境で、baserCMS 5.1.0、5.1.1 にて、SQLiteを利用したインストールのテストを実行したのですが、特に問題なくインストールできてしまいました。

環境の問題でしょうか、、、うーん

まず、リリースノートを確認すると、8.3.x対応となったのは、5.1.1からですので、phpバージョンの違いによる影響をなるべく避ける意味で、8.2.xで確認すべきではないでしょうか?
それを踏まえて、5.1.1について、あえて8.2.xでテストしてみました。(5.1.0に関しては、今更なので)

  • MAMP7ローカル、PHP8.2.0、SQLiteでは、問題なくインストールできました。
  • 次にLOLIPOPサーバー、PHP8.2.23、SQLiteでは、「データベースの構築中にエラーが発生しました。コアプラグインのインストールに失敗しました。」のメッセージが出てインストールできませんでした。

@ryuring さんのご指摘の様に、環境依存ということになりますね。