会社のサーバはFedora Core 5で作っているのだが、ここへOpenPNEをインストールした。ちなみに、我が家はDebian。
で、公式セットアップページに沿って入れていったのだが、これがまた!! 役に立たん。 ということで備忘録もかねてここに書いとく。
mbstring関数が入ってない、有効になっていないことが原因だった。 php-mbstringをyumとかaptitudeで入れる。php.iniのmbstring〜という部分のコメントアウトを外してこれらの変数を有効にする。
- 画像がアップロードできない。アップロードすると画面が真っ白。
php-gd (画像ハンドル系モジュール)を、やっぱりyumとかapptitudeとかで入れてあげる。
yum install php-gd
って感じ。
要は「ランダムに生成されるメールアドレスに対して送られてくるメールをmail.phpに入れてくれれば処理するよ」ということらしい。ということでhttp://kohizuka.ddo.jp/blog/category/openpne/を参考に設定。私の環境はPOSTFIXなので、EXIMとかSendMailのひとはごめんなさい。
- /etc/postfix/main.cfに以下を追加する。
virtual_alias_maps = pcre:/etc/postfix/virtual.openpne
- vi /etc/postfix/virtual.openpne とかして、正規表現で別名マップを書く。
/^get@sns.hoge.com$/ snspost
/^pd+-[da-f]{12}@sns.hoge.com$/ snspost
/^td+-[da-f]{12}@sns.hoge.com$/ snspost
/^bd+-[da-f]{12}@sns.hoge.com$/ snspost
- /etc/aliasesに、別名マップから振られてきたメールをmail.phpに流すコマンドを書く。
snspost: “|/usr/bin/php /var/www/OpenPNE/bin/mail.php”
で、chmod 777 /var/www/OpenPNE/bin/ とかして、postfixユーザがmail.php(と、インクルードされているphp群)を実行できるようにしてやらないと、エラーが出る。
メールサーバとOpenPNEの実行サーバが別になっている場合には、/etc/aliasの段階で実行サーバに振って、実行サーバ側のaliasesで実行モジュールに渡すのがわかりやすいと思う。
ちなみに、Debianではphpのコマンドライン実行モジュールを入れるのには以下のようにする。
aptitude install php4-cli
これでusr/bin/にphpという実行ファイルが入る。 aptitude install php4 だけだと、このコマンドライン実行モジュールが入らないので注意。
努力と方針は買うが、ひろめたいんだったらもっと文書化に力を入れてくれ、手嶋屋さん。あと、アポ依頼したら返答をくれ。 しょうがないから自分でやっちゃったよ。