FreeBSDのpeclコマンドが動作しない件について

[現象]
FreeBSDのportsからインストールしたPHPにおいて、
peclコマンドが使えない。

[原因]
peclコマンドは内部でpreg_match()を使用するため、
PCREを必要とする。FreeBSDでは、PCREはphp本体に
組み込まれず、pcre.soという名前の拡張モジュールとして
提供される。したがって、peclを使うためには、pcre.so
モジュールをロードする必要がある。
しかし、peclコマンドはphpに -n を付けて起動するため、
一切の拡張モジュールの読み込みをスキップする。
したがって、peclコマンドの起動に失敗する。

[対策]
peclコマンドを書き換える。
exec $PHP -C -n -q $INCARG -d output_buffering=1 -d safe_mode=0
$INCDIR/peclcmd.php “$@”
を、
exec $PHP -C -q $INCARG -d output_buffering=1 -d safe_mode=0
$INCDIR/peclcmd.php “$@”
に(-nを抜く)。

こんなんでいいのか?
まあいいことにしておこう。


| | 2005-12-12 23:00

Commenting is closed for this article.