症状
portsからphp5-mbstringをインストールし、phpinfo()で確認するときちんとインストールされているにもかかわらず、mb_ereg()を使用すると「undefined function」とエラーが出る。
原因
php5-mbstringをインストールすると、configureのオプションが –disable-mbregex となっているため。なぜmbregexをdisableにしてあるのか、理由は不明。
対処法
-
portsの下でパッケージソース展開。
# cd /usr/ports/converters/php5-mbstring # make
-
configureし直して再コンパイル。
# cd work/php-5.2.0/ext/mbstring/ # ./configure --enable-mbstring --with-php-config=/usr/local/bin/php-config --enable-mbregex --prefix=/usr/local # make
-
古いパッケージを一度アンインストールしてから再インストール。
# cd ../../../.. # make deinstall reinstall