pecl/mailparseをmbstring忘れた環境に入れる

ubuntuでapt-getしたphp5にpecl/mailparseを入れようとしたらエラーが出た

$>sudo pear install pecl/mailparse
phpizeとかconfigureのあとにmakeでエラー

エラーがでたmbfl_no_encoding_qprint など mbfl関連のエラー。mbstringがない?そんなわけはない。phpinfo()をよく見てると、./confifureでenable mbstring がない?でも動く。組み込まれてるからか。

というか、自分でビルドしていないのでmbfl関係のパッケージがなくてあたりまえ?

手っ取り早い解決は、PHPビルドしなおし。

でもmakeはconfigure設定をaptのパッケージとそろえるのが面倒。

pecl/mailparseを自分でビルドすることに。

ディレクトリ構造はFedraのパッケージを参照。
php-pecl-mailparse-debuginfo-2.1.1-1.fc3 RPM for x86_64
ふむふむ。RPMはこうやってたのか

Files
/usr/lib/debug/usr/lib64/php4/mailparse.so.debug
/usr/src/debug/mailparse-2.1.1
/usr/src/debug/mailparse-2.1.1/ext
/usr/src/debug/mailparse-2.1.1/ext/mbstring
/usr/src/debug/mailparse-2.1.1/ext/mbstring/libmbfl
/usr/src/debug/mailparse-2.1.1/ext/mbstring/libmbfl/mbfl
/usr/src/debug/mailparse-2.1.1/ext/mbstring/libmbfl/mbfl/mbfl_convert.h
/usr/src/debug/mailparse-2.1.1/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h
/usr/src/debug/mailparse-2.1.1/mailparse.c
/usr/src/debug/mailparse-2.1.1/php_mailparse.h
/usr/src/debug/mailparse-2.1.1/php_mailparse_mime.c
/usr/src/debug/mailparse-2.1.1/php_mailparse_mime.h
/usr/src/debug/mailparse-2.1.1/php_mailparse_rfc822.h


mbfl関係のソースは、php本体のソースにほしいものがあることを確認

$> ls php-5.2.0/ext/mbstring/ 
CREDITS              config.m4   mb_gpc.h      oniguruma      php_unicode.h
README               config.w32  mbstring.c    php_mbregex.c  tests
README.libmbfl       libmbfl     mbstring.dsp  php_mbregex.h  unicode_data.h
README_PHP3-i18n-ja  mb_gpc.c    mbstring.h    php_unicode.c

これらのmbstringのソースを使えばmakeできそうだ。php本体のソースからmailparseのソースに突っ込む。参照してもいいけど突っ込むほうが楽かも。

$>ls php-5.2.0/ext/mbstring/
$>mkdir ./mailparse-2.1.1/ext/
$>cp ./php-5.2.0/ext/mbstring ./mailparse-2.1.1/ext/ -R
$>cd mailparse-2.1.1
$>phphize
$>./configure
$>make
$>sudo make install

これでビルドは通った。

ちゃんと動くかな?wkwk