WordPress で使用していたプラグインが、以下のエラーで動かなかった。
[Thu Oct 08 19:22:36 2009] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined function mb_strlen() in C:\\Documents and Settings\\yuhki\\My Documents\\WebPage\\wordpress\\wp-content\\plugins\\commented-entry-list_1.2\\commented-entry-list.php on line 101
mb_strlen() を動かすための dll がインストールされていないのが原因らしい。
PHPのモジュールを追加するため、PHP 5.3.0 を再インストールする。(以前の、PHPのバージョンは、未確認・・)
ダウンロード
以下のサイトからダウンロードする。
この記事を書いてある時点で、「Current PHP 5.3 Stable: 5.3.0」のリンクの部分が安定版の最新。
インストール時のメモ
そのまま上書きでインストールした。。以前の、PHPのバージョンは、未確認だがインストーラーは前のバージョンを認識していないのか、それともこういうものなのわからないが、通常のインストールに見えた。
・インストール時に嵌ったところ
Apache 2.2 で使うための再インストールだったが、はじめに、以下の画面でチェックを入れておくと、インストーラーが終了しない現象に遭遇した(CPUは使っていて動いているが、何十分も終了しない)。
そのため、一度、「Don not setup a web servver」を選択してインストールを完了させ、その後、再度インストーラーを起動させると「Change」というメニューが出てくるので「Change」を選び、その後「Apache 2.2.x Module」を選択して再インストールすると上手く行った。
・mb_strlen を使うために追加すべきモジュール
インストール・モジュールは、途中で、「Mulit-Byte String」と言うパッケージを選択する。これを選択しておかないと mb_strlen が使えない。
インストール完了後の作業
php.ini を覗いてみると
[PHP_MBSTRING]
extension=php_mbstring.dll
となっていた。
この他に、
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
…
等の設定をする必用があるかと思ったが(php.ini 内ではこれらの設定はコメントアウトされていた)、今回の使用目的 (WordPress のプラグインを動かす)では、問題無く動いているようなので、今の所、デフォルトのままとする。
結局、Apache の再起動以外は特に何もする事無く、デフォルト設定のまま mb_strlen( ) が使えるようになった。