|
もう説明の必要もないでしょうが、PHP4用マルチバイト対応正規表現ライブラリ(mbregex)の動的モジュールとしてのインストール手順をまとめてみました。インストール方法としては先付け(PHPソースに含める)・先付け(phpize)の2パターンありますが、とりあえず両方ともやってみました。
PHP4.2.0以降であれば、PHPのソースにマージされていますので、PHPのconfigure時に「--enable-mbregex」を追加するだけでOKです。
ここでは、PHP本体のソースと共にコンパイルする先付けパターンについてまとめています。phpizeを使う後付けパターンはこちらからどうぞ。
1.Apacheのインストール
Apacheのインストールのページを参照して、DSOをサポートするようインストールしてください。
2.PHPのソースを入手・展開
PHP本家のサイト(http://www.php.net/)からソースを取得します。最新版は(2002/2/26現在)は、PHP4.1.1です。php-4.1.1.tar.gzをダウンロード・展開します。今回は、/usr/local/srcに展開しました。GNU tarの場合、以下のコマンドです。
$ tar zxf php-4.1.1.tar.gz -C /usr/local/src
3.mbregexのソースを入手・展開
こちら)からソースを取得します。最新版は(2002/2/26現在)は、PHP4.1.X用がphp4_mbregex-1.3.1、PHP4.0.x用がphp4_mbregex-1.2.1です。今回はPHP4.1.1を使用しましたので、php4_mbregex-1.3.1.tar.gzをダウンロードし、PHP本体のソースを展開したディレクトリ直下のextディレクトリ(/usr/local/src/php-4.1.1/ext)に展開し、/usr/local/src/php-4.1.1に移動しておきます。GNU tarの場合、以下のコマンドです。
$ tar zxf php4_mbregex-1.3.1.tar.gz -C /usr/local/src/php-4.1.1/ext
$ cd /usr/local/src/php-4.1.1
4.buildconfの実行
buildconfを実行し、configureスクリプトを再作成します。
$ \rm configure
$ ./buildconf
5.PHPのconfigure
ここで、mbregexサポートのオプションを付け、configureスクリプトを実行します。今回は、以下のオプションを付けましたが、その他のオプションはお好みにより付けて下さい。
- PHPをApache DSO版にする(*1)
- マルチバイト文字列関数(mbstring)をサポートする(*2)
- デフォルトで組み込まれるMySQLサポートを外す(*3)
- マルチバイト対応正規表現ライブラリ(mbregex)をサポートする(*4)
具体的なコマンドは、以下のようになります(カッコ内の数字は、上記のオプションの説明に対応しています)。
$ ./configure --with-apxs=/usr/local/apache/bin/apxs \ (*1)
--enable-mbstring \ (*2)
--enable-mbstr-enc-trans \ (*2)
--without-mysql \ (*3)
--enable-mbregex (*4)
configure --help とすると、オプションの説明が表示されます。
PHP3/4を同居させるためには、PHP3、PHP4のconfigure時に「--enable-versioning」オプションを付け、それぞれmake・make installします。
configureに失敗した場合、コンソールの最後にメッセージが表示されるので、確認してみましょう。また、ログファイルconfig.logが作成されているはずですので、こちらも確認してみましょう。このファイルには、configureスクリプトの何行目辺りにある、どういった処理を行っている時にエラーとなったかが記されています。
6.コンパイルとインストール
configureが無事終了したら、makeを実行しコンパイルを行います。コンパイルが終了したらrootユーザーとなり、インストールを実行します。
$ make
$ su
# make install
インストール先は、[Apacheのインストール先]/libexec となります。ここにlibphp4.soが存在するかどうか、確認しましょう(これが実体です)。
7.php.iniの設定
PHP4の設定ファイルであるphp.iniのコピー&設定を行います。php-4.1.1ディレクトリにphp.ini-distファイルがありますので、/usr/local/lib/php.iniとしてコピーします。コピーしたら、以下の内容を追記します。詳細はphp-4.1.1ディレクトリにあるREADME.i18nを参照して下さい。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; for mbstring
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; HTTP入力エンコーディング変換をautoに設定
mbstring.http_input = auto
;; SJISに変換
mbstring.http_output = SJIS
;mbstring.http_output = pass
;; 内部エンコーディングをEUC-JPに設定
mbstring.internal_encoding = EUC-JP
;; 無効な文字を出力しない
mbstring.substitute_character = none
mbstring.detect_order = auto
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; for mbregex
; これは新規追加
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mbregex.encoding=EUC-JP
8.httpd.confの設定
[Apacheのインストール先]/conf/httpd.confを編集し、PHPを使用可能な状態にします。以下の赤字が編集した部分です。
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php(アンコメント)
AddType application/x-httpd-php-source .phps(必要であればアンコメント)
9.Apacheの起動と動作確認
Apacheを起動し、phpinfoで以下の項目が表示されているかどうか確認します。
$ su -
# /usr/local/apache/bin/apachectl start
PHP4.2.xの場合、phpinfoでは独立した項目ではなく、mbstringの一項目として表示されます。
また、以下のようなPHPスクリプトを用意し、動作テストを行います。
<?php
$strS = "小池さんはラーメン大好き";
$strEreg = "ラーメン";
print mbereg_replace("$strEreg", "<B>$strEreg</B>", $strS);
?>
|