■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。
このフォーラムは閲覧専用のアーカイブです。

「Step3」のデータベース選択でSQLiteを選択できません

cyan > 「Step3」のデータベース選択でSQLiteを選択できません @ 2010/11/11 14:18
お世話になっております。

新しく設置した独自サーバーにBaserCMSをインストールをし、データベースにSQLiteを使用したいと思っています。
しかし、SQLiteが入っているにもかかわらず「Step3」のデータベースの選択でSQLiteを選択できない状態になっております。
なお、SQLiteはPDOを使用しております。

SQLiteを選択するためにはどのようにしたら良いのでしょうか?


独自サーバーの環境は次の通りです。

■ 使用OS:Linux(Fedora 13)
■ BaserCMSのバージョン:1.6.6
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ
■ 利用したいと思っているデータベース:SQLite 3.6.22
■ PHPのバージョン:5.3.1
ryuring > Re: 「Step3」のデータベース選択でSQLiteを選択できません @ 2010/11/15 13:26
こんにちは。

まず、/app/db/sqlite フォルダが存在し、書込み権限があるか確認してください。
上記がOKの場合、SQLiteの利用可否チェックがうまくいっていないのだと思います。

/baser/controllers/installations.php の 242行目〜246行目にSQLiteの利用可否チェックがありますので、
各関数が出力する値を確認してみてください。

・function_exists('sqlite_libversion')
・class_exists('PDO') 
・version_compare ( preg_replace('/[a-z-]/','', phpversion()),'5','>=')
・PDO::getAvailableDrivers()
・in_array('sqlite',$pdoDrivers)

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

cyan > Re: 「Step3」のデータベース選択でSQLiteを選択できません @ 2010/11/16 12:23
ご回答ありがとうございます。

引用:
まず、/app/db/sqlite フォルダが存在し、書込み権限があるか確認してください。
上記がOKの場合、SQLiteの利用可否チェックがうまくいっていないのだと思います。


確認したところ、/app/db/sqlite自体が出来ていませんでした。

引用:
/baser/controllers/installations.php の 242行目〜246行目にSQLiteの利用可否チェックがありますので、
各関数が出力する値を確認してみてください。


それぞれの項目を出力したら次の通りとなりました。

・function_exists('sqlite_libversion') … bool(false)
・class_exists('PDO') … bool(true)
・version_compare ( preg_replace('/[a-z-]/','', phpversion()),'5','>=') … bool(true)
・PDO::getAvailableDrivers() … array(2) { [0]=>  string(5) "mysql" [1]=>  string(6) "sqlite" }
・in_array('sqlite',$pdoDrivers) … bool(true)


結果を見るとexists('sqlite_libversion')で弾かれたため、以降の処理が出来ていないようです。
ryuring > Re: 「Step3」のデータベース選択でSQLiteを選択できません @ 2010/11/17 9:00
おはようございます。

引用:
結果を見るとexists('sqlite_libversion')で弾かれたため、以降の処理が出来ていないようです。


なるほど。

SQLiteの利用可否は、PDOでSQLiteが利用できれば大丈夫だと思いますので、

function_exists('sqlite_libversion')

は除外してもよいかもですね。

その条件を除外し、インストール後、動作を確認してみてください。
よかったら、結果を教えてください。
問題なければ、次のバージョンに反映したいと思います。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

cyan > Re: 「Step3」のデータベース選択でSQLiteを選択できません @ 2010/11/18 20:54
引用:
SQLiteの利用可否は、PDOでSQLiteが利用できれば大丈夫だと思いますので、

function_exists('sqlite_libversion')

は除外してもよいかもですね。

その条件を除外し、インストール後、動作を確認してみてください。



/baser/controllers/installations.php の 242行目にある function_exists('sqlite_libversion')を
コメントアウトしてインストールしたところ、無事インストールが完了しました。

また、簡単にページチェックやコメントの書き込みや削除といった動作確認を行ったところ、
画像認証の画像が表示されないことを除いて一通り動きましたので、画像認証を使用しなければ問題無さそうです。

丁寧に対応していただきまして、ありがとうございました。


ちなみに、sqlite_libversion関数が存在しない理由を調査してみたところ、
FedoraのPHP5パッケージは標準で「--without-sqlite」となっており、
PDOが入っていてもsqlite_libversion関数など、SQLite2の関数が使用できない状態であることが分かりました。

参考になるかは分かりませんが、記しておきます。
ryuring > Re: 「Step3」のデータベース選択でSQLiteを選択できません @ 2010/11/19 20:25
こんばんは。

引用:
PDOが入っていてもsqlite_libversion関数など、SQLite2の関数が使用できない状態であることが分かりました。


なるほど。逆に、sqlite_*** 系の関数が入ってなくてもPDOさえ入っていれば動作できるという事ですね。

ソースを調べたところ、sqlite_***系の関数は全てPDO系の関数に移行が完了していましたので、

function_exists('sqlite_libversion') は、本体パッケージからも除外する事にしました。

次の1.6.7に反映します。

ご報告ありがとうございました。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ