Displaying posts tagged:
December 4, 2008 1:39am
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 では、ドキュメントルート(公開用フォルダ)のパーミッションを変更しても、一定時間ごとに元に戻すように設定されているみたいです。
...
December 4, 2008 12:45am
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レベルのエラーは出力されないようになりました。