bbPress Attachmentsが機能しない

知人よりコミュニケーションを取るための掲示板を用意してほしいと頼まれ、いろいろ考えた結果bbPressを導入することにした。

インストールはWordPressと同じくたいへん容易。デフォルトの状態でも操作は分かりやすく、デザインセンスも悪くない。素人でもとっつきやすいだろう。管理画面もWordPressと同様の慣れ親しんだインターフェースだ。ユーザー登録しなければ投稿できないのは少々難点だが、登録手続きは簡便でこれなら素人でもつまづかないだろう。求めていたコミュニティツールとしては概ね及第点だ。

だが、気になったのは画像を投稿する機能がないことだ。このくらいデフォルトで欲しい機能だが、WordPressと同様に何かプラグインがあるだろうと思って探していたら、案の定あった。

bbPress Attachments
http://bbpress.org/plugins/topic/bb-attachments/

インストールはちょっと面倒だが、たいしたことはない。具体的な方法はこちらを参照。
http://hatomugi.sakura.ne.jp/forum/topic.php?id=19

インストール手順を終えると投稿画面にファイル添付のフォームがついた。これでOKと思いきや問題発生、ちゃんと動かない。添付する画像を選択して投稿ボタンを押すと、アップした画像のファイル名は表示されるのだが画像は投稿結果に表示されない。
アップロード先ディレクトリを弄ったので、再三確認するも間違っているようには思われない。

検索していると同じ症状と思しき人がいた。
http://tunakko.net/?p=3079

こちらはプラグイン作者のフォーラム。私と同じ症状を訴えている人が何人かいる。(英語)
http://bbshowcase.org/forums/topic/new-bbpress-plugin-bbpress-attachments

しかし、解決策は示されていないようだ。
代替するプラグインはないかと探してみるものの見当たらず。WordPressに比べて、プラグインが圧倒的に少ない。全然盛り上がってない様子だ。
仕方ないので、プラグインのコードを解析して原因究明を試みた。

その結果、問題解決した。

[原因]
運用していたレンタルサーバcoreserverPHPをサーフモードで動かしていたため。
プラグインphpファイルはディレクトリを作成して、その中に画像などファイルをアップロードするのだが、そのディレクトリのオーナーがapacheになってしまい、phpの操作ではパーミッションを777にしてもファイルを置くことができなくなっていた。
(サーバの知識が乏しいので認識に間違いがあったら指摘よろ)要するにレンタルサーバの仕様。

[解決策]
phpCGIモードで動かすこと。coreserverの公式サイトに載っている。
http://www.coreserver.jp/help/index.php/phpcgi/

これで無事に画像がアップロードされ、投稿記事に表示された。結局コード自体を弄る必要はなかった。やれやれ。
同じ症状で困った人は多いんじゃないかと思うのだが、関連記事の絶対数が少なく解決策を示したものがないのでここに記しておく。

ただ、問題が完全に解決したわけではない。実は画像は表示されたが、画面をリロードすると表示されなくなってしまう。もう一度リロードすると表示される。わけが分からないが、リロードを繰り返すだびに交互に表示されたりされなかったりする(IE6とFirefox4で確認)ちなみに、Google Chromeだとキャッシュが機能しているからか、ちゃんと表示されるのは最初の一回だけだった。(キャッシュをクリアするとまた一回だけ表示される)
原因不明で気持ち悪いが、これ以上時間をかけるわけにもいかないので、仕様ということであきらめてこれで運用することにする。