SQLite

SQLiteはサーバーレスのSQLデータベース実装です。 Moodleはそれを実験的にサポートしています。プロダクションMoodleサイトにはお勧めできません。

MoodleのSQLiteドライバはSQLite PDOドライバがPHPに存在することを要求します。 PHPのネイティブ(非PDO)SQLドライバでは動作しません。

それはバグを含んでいます - それはただ動作しません。以下は、それを使用しようとする試みと調査する必要があるものを文書化しています。

Moodle 2.2とSQLite

以下はMoodle 2.2.4(Build:20120706)用です。おそらく2.2.11(build 20130708)でも同じです。以下のパラメータを設定する必要があります。 null値を設定しなくても機能しますが、PHPのデバッグレベルをhighに設定すると通知が表示されます。

 $ CFG-> dbtype = 'sqlite3';
$ CFG-> dblibrary = 'pdo';
$ CFG-> dbhost = null。
$ CFG-> dbname = null。
$ CFG-> dbuser = null。
$ CFG-> dbpass = null。
$ CFG-> dbprefix = ""; //プレフィックス(例: 'mdl')は無視されます。したがってサードパーティ製のモジュールを混乱させるので使用しないでください。
$ CFG-> dboptions = array();

それからlib / ddl / sqlite_sql_generator.phpを修正する必要があります。 lib / ddl / postgres_sql_generator.phpから関数getCreateTempTableSQL($ xmldb_table)とgetDropTempTableSQL($ xmldb_table)の定義をコピーします。

それからインストールはうまくいきます。しかし、インストール後に死に、「PHPのキャッチ可能な致命的なエラー」と表示されます。調べてみましょう:

 cd <moodledata>
 ll * sq *
 -rw-r  -  r-- 1 apache apache 1624064 Oct 23 08:46 _d41d8cd98f00b204e9800998ecf8427e.sq3.php
 #あなたのDBファイルは別の名前を持っているかもしれません_d41d8cd98f00b204e9800998ecf8427e.sq3.php
 #所有権を変更して、DBに書き込めるようにします。まだアクセスできるように、グループのアクセス権を変更してください。
 sudo chown <myusername> _d41d8cd98f00b204e9800998ecf8427e.sq3.php
 chmod g + w _d41d8cd98f00b204e9800998ecf8427e.sq3.php
 sqlite _d41d8cd98f00b204e9800998ecf8427e.sq3.php
 SELECT * FROM config WHERE nameのように '%debug%';
 UPDATE config SET値= 32767 WHERE name = 'debug'; - これはPHP 5.4以降用です。
 。終了する

それからあなたは以下のようなそしてもっと多くの警告を受けます、そしてそれは死にます:

警告:604行目の/var/www/html/elearning/lib/enrollib.phpでforeach()に無効な引数が指定されています
警告:array_key_exists()はパラメータ2が配列であることを想定しています。ブール値は/var/www/html/elearning/lib/navigationlib.phpの1069行目にあります。
警告:1074行目の/var/www/html/elearning/lib/navigationlib.phpでforeach()に無効な引数が指定されています
Warning:array_slice()はパラメータ1が配列であることを想定しています。ブール値は/var/www/html/elearning/lib/navigationlib.phpの1632行目にあります。
Warning:1635行目の/var/www/html/elearning/lib/navigationlib.phpでforeach()に無効な引数が指定されています
Warning:1711行目の/var/www/html/elearning/lib/navigationlib.phpでforeach()に無効な引数が指定されています
厳密な標準:64行目の/var/www/html/elearning/lib/formslib.phpで、互換性のないコンテキストから$ thisを仮定して、非静的メソッドPEAR :: setErrorHandling()を静的に呼び出すべきではありません。
厳密な標準:2517行目の/var/www/html/elearning/lib/formslib.phpで、互換性のないコンテキストから$ thisを仮定して、非静的メソッドHTML_QuickForm :: registerElementType()を静的に呼び出すべきではありません。
...
厳格な基準:/var/www/html/elearning/repository/lib.phpの1888行目で、repository_instance_form :: validation()の宣言はmoodleform :: validation($ data、$ files)と互換性があるはずです。
厳密な標準:repository_type_form :: validation()の宣言は、1990年の/var/www/html/elearning/repository/lib.phpにあるmoodleform :: validation($ data、$ files)と互換性があるはずです。
厳格な標準:repository_local :: get_listing()の宣言は、行168の/var/www/html/elearning/repository/local/lib.php内のrepository :: get_listing($ path = 、$ page = )と互換性があるはずです。
厳格な標準:233行目の/var/www/html/elearning/repository/recent/lib.phpで、repository_recent :: type_config_form()の宣言はrepository :: type_config_form($ mform、$ classname = 'repository')と互換性があるはずです。
厳密な標準:repository_upload :: get_listing()の宣言は、行204の/var/www/html/elearning/repository/upload/lib.phpにあるrepository :: get_listing($ path = 、$ page = )と互換性があるはずです。
厳密な標準:/var/www/html/elearning/repository/user/lib.phpの135行目で、repository_user :: get_listing()の宣言はrepository :: get_listing($ path = 、$ page = )と互換性があるはずです。
警告:160行目の/var/www/html/elearning/lib/enrollib.phpでforeach()に無効な引数が指定されています
厳密な標準:envar_manual_plugin :: get_bulk_operations()の宣言は、行292の/var/www/html/elearning/enrol/manual/lib.phpにあるenrol_plugin :: get_bulk_operations()と互換性があるはずです。

...

Moodle 2.6.1以降(ビルド20140207)

上記の方法でconfig.phpを準備するのは十分ではありませんでした。インストールは開始されません。 http://localhost/moodle-26/admin/index.php?lang = ja&agreelicense = 1 'データベース'サーバーチェックを一覧表示します:環境データの読み込みエラー(10)。

lib / ddl / sqlite_sql_generator.phpもありますが、おそらくこれを修正する必要があります。

古い文書から

他のデータベースパラメータは使用されません。データベーステーブルは 'moodledata'ファイルエリアに保存されています。

参照