まるとOpenPNE
Amebaでブログを始めよう!
1 | 2 | 3 | 4 | 最初次のページへ >>

技術メモ1

OpenPNEとは直接関係ありませんが、断片的な技術メモ


◆メール転送設定

http://d.hatena.ne.jp/openpne/20060520


vi /etc/postfix/main.cf
mydestination = $myhostname, localhost.$mydomain, example.com
inet_interfaces = all
#inet_interfaces = localhost
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/postfix/aliases

vi /etc/postfix/virtual
example.com SET_DOMAIN
@example.com example_com_mailphp
sns@example.com master@mail.example.com

vi /etc/postfix/aliases
example_com_mailphp: "|/usr/local/bin/php /hoge/sns/example.com/bin/mail.php"



postmap /etc/postfix/virtual

newaliases

/etc/init.d/postfix start


◆SVNファイルを除去する

http://flyfront.blog.shinobi.jp/Entry/6/

rm -rf `find ./ -type d -name .svn ! -regex \.svn/. -print`


◆Apache側のPHPとコマンドラインPHPのライブラリが異なる場合の注意点


特にmcryptが入っているかいないかで暗号化の結果が異なってしまう可能性があることもある


◆$_SERVERはコマンドラインでは使わない方がよい

http://www.php.net/manual/ja/reserved.variables.php

http://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/manual/reserved.variables.html


スクリプト自身のパスなどを得たい場合は$_SERVER['PHP_SELF']ではなく__FILE__などを使う方向で。

特に$_SERVER['PHP_SELF']は相対パスでスクリプトを指定した場合は相対パスが入ってしまう。



セッションストレージにmemcache 追記 + ファンクションキャッシュをmemcache

セッションストレージにmemcache
http://ameblo.jp/marupne/entry-10042510558.html

に引き続き、セッションストレージにmemcacheを利用することに関して再調査と実装を行いました。


前回PHPからmemcacheが認識できないという問題がありましたが、調査したところ、現在の環境のCentOSのyumでインストールできる最新のPHPの4.3.9では、PECL::memcacheの最新の2.1.2が利用できないようです。

http://pecl.php.net/bugs/bug.php?id=10536&edit=1
http://lists.rpmforge.net/pipermail/users/2007-June/000807.html


そのため、今回rpmでのインストールで2.0.4のPECL::memcacheをインストールにより、動作を確認しました。

インストール手順としては

http://centos.oss.sc/fundamentals/yum_rpmforge/
よりRPMforgeからrpmを取得できるようにし


yum install libevent
yum install memcached
wget http://dag.wieers.com/rpm/packages/php-pecl-memcache/php-pecl-memcache-2.0.4-1.el4.rf.i386.rpm
rpm -ivh php-pecl-memcache-2.0.4-1.el4.rf.i386.rpm


でインストール、OpenPNEのtrunkからソース設置、DB設定などの通常のOpenPNEの設定を行った後、config.php


・セッションをmemcacheに格納
// セッション情報を保存するストレージ
// 0:ファイル
// 1:データベース
// 2:memcache(要PECL::memcache)
define('SESSION_STORAGE', 2);
// セッションデータ保存用Memcache(オプション)
$GLOBALS['_OPENPNE_MEMCACHE_LIST']['session'] = array(
'dsn' => array(
'hostspec' => '127.0.0.1',
),
);


・ファンクションキャッシュをmemcacheに格納
// このオプションを有効にするためにはOPENPNE_USE_FUNCTION_CACHEをtrueにする必要があります。
// ファンクションキャッシュのキャッシュを保存するストレージにmemcacheを使用
define('OPENPNE_USE_FUNCTION_CACHE_MEMCACHE', true);

// OPENPNE_USE_FUNCTION_CACHE_MEMCACHEがtrueの場合の
// ファンクションキャッシュ用memcacheサーバ設定
$GLOBALS['_OPENPNE_MEMCACHE_LIST']['func_cache'] = array(
'dsn' => array(
'hostspec' => '127.0.0.1',
),
);


のように設定することによって利用できます。

この機能は2.10に入る予定です。

携帯絵文字のキャリア毎変換

携帯の絵文字をキャリアごとで変換する機能を今回実装しました。


携帯での入力で用いることができる絵文字ですが、現状のOpenPNEでは異なるキャリアの絵文字、例えばDocomoの絵文字をSoftBankで表示すると、化けてしまうという現象が起きます。


これはそれぞれの携帯キャリアが独自のフォーマットで絵文字を規定しているからであり、本来それぞれの絵文字は対応するように作られていないからです。


また、PCで絵文字を表示する際も絵文字はPCには本来存在しないので、化けた状態で表示されることになります。


今回の実装ではそれらの絵文字を


・携帯での表示では近い性質の絵文字に変換して表示する

・PCではとりあえずゲタ(〓)に変換する


という実装を行っています。


PC版での表示は絵文字を画像に変換することも実装上は容易に可能なのですが、表示するための画像を用意する必要もあることことから、今回はこのような形になりました。


実装を行ったソースは

https://svn.openpne.jp/svn/OpenPNE/branches/work/maruyama/prj_emoji

においています。


※今後実装が変更される可能性があるため、注意してください。


1 | 2 | 3 | 4 | 最初次のページへ >>