OpenPNE 2.10 PostgreSQL版

友人が集うwebサイトをSNSのシステムでということになり、SNSのシステムを当たっていたのだけど、
システム要件に合うのがOpenPNEしかなかった。
もしかしたら他にもあって、調査しきれていないだけかもしれないが。

2.10からPostgreSQL対応ということで、2.10がリリースされるのを待っていたのだけど、
先日リリースされたので、早速試してみた。

試した環境は、Debian GNU/Linux etch で構築したサーバです。
まずサーバの要件構築。
初めは、apache2.2、PHP5.2、PostgreSQL8.1、Postfixで環境構築。
といっても、既存環境としてすでにセットアップ済みで試したのだけど。
なので、基本的な構築については説明を省く。また要点だけかいつまんでレポート。

PHPのバージョン
結論としてはPHP5.2では動かなかった。
一応動くのだけど、SNSの初期化でフォームに入力して送信したときにエラーが発生してセットアップができない。
推測だが、5.2から言語仕様が変更になり、__toStringメソッドがないオブジェクトをstringに変換しようとすると例外が発生しエラーになる。
これに対応できていないみたい。
バグレポあげたが、再現不能となっているので、きちんと調査しておけばよかったかな。
PostgreSQLのクエリパラメータのエスケープ処理にPEAR使っているが、それが5.2に対応していないバージョンのせいではないか?という話もでた。

結局4.4に入れ直すことで解決してしまったので、本当のところはなんともいえない


セットアップマニュアル他
PostgreSQL版のほうは、添付されているセットアップマニュアルが古い。
2.8ベースとなっていて、2.10を使用するために必要な情報が不足している。

例えばセットアップ用SQLがあるのだが、installに入っているのは2.8用だ。
ここから、upgradeフォルダに入っているSQLを実行しなければいけないようだが、どのSQLをどの順番でどれだけ実行しなければいけないのか不明だ。

2.10用のセットアップガイドとセットアップSQLは、以下のURLにあるので、そちらを別途ダウンロードしてきて使った方がよい

セットアップガイド
http://trac.openpne.jp/changeset/4535

セットアップSQL
http://trac.openpne.jp/changeset/4534

2.8用のセットアップSQLを実行しただけでは、テーブル定義が異なる部分があり、いくつか基本的な機能でSQLクエリエラーがでる。


PHPの設定
これが非常に悩ませられた。
特にmbstring関係。
mbstring関係の設定値がきめうちで処理が書かれているが、どういう設定を前提としているか書かれた文書はない。

現在確認しているものとしては、以下のものがある。

mbstring.encoding_translation = off


これがonだと携帯からの投稿で文字化けが発生する。
携帯から投稿されたデータはJIS系である前提で、エンコード変換を内部でかけている。
この設定値がonになっていると、PHPが自動的にエンコード処理してUTF-8にしたものを、さらにUTF-8にコンバートする処理が入ることになるのだ。

mbstring.func_overload  = 0


mail関数をオーバーロードする設定にしていると問題が発生する。
subjectのエンコード処理を内部でやっているため、オーバーロードしているとさらにエンコード処理され、subjectが壊れる。


とりあえずこのあたりに気をつけるだけで、後は普通につかえるみたいだ。
まだすべての機能をためしたわけではないので、まだ見ぬトラブルもあるかもしれないが。

OpenPNEはいろいろと噂も絶えないが、要件満たすのがこれしかないので致し方ない。

カテゴリ: , ,

関連する記事

この記事に関連する記事は、0 件です。

トラックバック

このブログ記事に対するトラックバックURL
http://fakelife.info/mt/system/mt-tb.cgi/50

コメントする


画像の中に見える文字を入力してください。