Displaying posts tagged:

CORESERVERで、habari を sqlite で動作させる

No Comments
ドキュメントルート直下に habari をインストールしようとした場合、下記の条件下では、CORESERVER で habari0.5.2 は動作させることはできないようです。 データベースに sqlite を利用している。 データベースファイル(habari.db)がドキュメントルート直下にある。(インストール時に初期設定のままにしておいたケース。) PHP がモジュール版で動作している(.htaccess に設定を記述しない限り、通常はこのモードで動作しています。) 特に何も設定せずに、インストールを行った場合、このような状態になると思います。 ですが、このケースでは下記のようなエラーが出力され、動作しませんでした。 SQLSTATE[HY000]: General error: 14 unable to open database file in system/classes/databaseconnection.php line 261 この問題を解決するために、下記のような手順をとりました。 すでに、habariをアップロードしている場合は、現在アップロードしているファイルを全て削除します。(所有者が「apache」となっているファイルはFTPソフトでは削除できません。CORESERVER に連絡して、所有者をあなたのアカウントに変更してもらいましょう。その後は FTP ソフトで削除できます。ファイル削除用の PHP プログラムを書くのも一つの方法ですが、初心者の方にはおすすめできません) 次に、「.htaccess.txt」というファイル名のテキストファイルを作り、下記の様に記述します。AddHandler application/x-httpd-phpcgi .php このファイルをアップロードします。 アップロードした「.htaccess.txt」の名前を「.htaccess」へと変更します。 次に、habari-0.5.2.zip を解凍し。のファイルを全てアップロードします。 あとは、アップロードしたindex.phpにアクセスして、インストールを行います。 この手順をおこなった後は、特に問題なく利用できるようになりました。 何が原因だったのか(ここから先は推測です) 今回の問題は、フォルダの所有者と、PHPを実行するユーザがバラバラだったために発生していたようです。 まず、sqlite は、データベースファイル(habari.db)のデータを更新する際に、このファイルが置かれているフォルダに、一時的に別のファイルを作成するようになっているようです。 sqliteを操作しているのは PHP を実行している apache というユーザです。ところが、このファイルを置いているフォルダの所有者は、あなたのユーザ名になっているはずです。 そのため、このフォルダに対して「その他のユーザ」が「書き込み」できるように、フォルダのパーミッションを変更しなくてはいけません。 ところが、CORESERVER では、ドキュメントルート(公開用フォルダ)のパーミッションを変更しても、一定時間ごとに元に戻すように設定されているみたいです。 ...

[habari-0.5.2] タグへのリンクをクリックすると、Notice が表示される

No Comments
habari0.5.2 で、タグへのリンクをクリックしたときに下記の様なエラーメッセージが表示される事があります。Notice: Undefined variable: tag in system/themes/charcoal/tag.php line 4この問題を解決するには、 habari をインストールしたディレクトリ直下のindex.php というファイルの106行目を修正すればいいようです。[sourcecode lang='php']error_reporting( E_ALL );[/sourcecode][sourcecode lang='php']error_reporting( E_ALL  & ~E_NOTICE);[/sourcecode]E_ALL & ~E_NOTICE と設定すると、E_NOTICEレベルのエラーは出力されないようになりました。