OpenPNE のデータ移行でメールアドレスが化けたときの対処法
オープンソースの SNS エンジンである OpenPNE。これは、メールアドレスをデータベースに暗号化して保存します。この暗号化なのですが、どうやら PEAR の Crypt::Blowfish を用いている模様。このライブラリは、mcrypt を使用して暗号化処理を行うようなのですが、PHP に mcrypt が組み込まれていなくてもエラーを吐いたりしません(少なくとも OpenPNE では)。何事もなかったようにスルーしていしまいます(たぶん暗号処理をしないでそのまま返す!?)。ということで、ここが意外とハマりポイントになりそうなので、メモを残しておきます。
私の場合、Vine Linux 3.2 で動いているマシンから CentOS 4.3 で動いているマシンにデータを移行しようとしました。どちらも標準添付の PHP を用いたのですが、Vine Linux のほうは mcrypt が組み込まれているのに対し CentOS のほうは組み込まれていません。そこで CentOS に組み込むことにしました。まずは、libmcrypt を RPM でインストールします。以下のサイトで配布しています。
CentOS は Redhat Enterprise Linux とバイナリ互換なので、私の場合は Red Hat EL 4 のものを持ってきました。次に PHP 用の拡張モジュールを RPM でインストールします。以下のサイトで配布しています。
これで OK です。