アプリ版:「スタンプのみでお礼する」機能のリリースについて

FedoraCore4のPHP-version5.0.4 rpmをインストールしたのですが、マルチバイト文字関数が標準になっていないのでマルチバイト文字関数が使えるようにしたいのです。
今のところ一度PHPをアンインストールして、ソースを落としてきて、configureの時にオプションで指定して対応しようかと考えています。
しかし、超初心者ですのでもう少し簡単な方法を探しています。ご存知の方はぜひご教授いただきたいと思います。
よろしくお願いいたします。

A 回答 (1件)

こんにちは、まずはじめにソースからのコンパイルと RPM のリビルド(RPMパッケージを作り直す)という2つの方法があります。

が、どちらも荊の道です(^^;

ソースからでしたら configure 時に

--enable-mbstring \
--enable-mbregex \
--enable-zend-multibyte \

この3行を加えるようにしてみてください。あとは必要に応じて他のアプリケーションも --enable~ や --with~ で指定する必要があります。いまどんな configure が指定されているかは

<? phpinfo(); ?>

とだけ書いたページを設置して上から3段目「Configure Command」の部分を参照してください。

ちなみにソースからインストールしようとしても、パッケージの必要性などから Configure Command 通り configure に実行してもエラーになります。

RPM パッケージと同じような構造でマルチバイトに対応させたい!という場合は、パッケージ毎まるごと再構築する方法がおすすめです。以下、ちょっと長いです。

まず、ソースを取得して、spec ファイルという RPM の設定素となるファイルを開きます

# cd /usr/local/src/
# wget http://ftp.riken.go.jp/pub/Linux/fedora/core/4/i …
# rpm -ivh php-5.0.4-10.src.rpm
# vi /usr/src/redhat/SPECS/php.spec

次にファイルの 453 行目に以下の項目を追加します。

--enable-mbstring \
--enable-mbregex \
--enable-zend-multibyte \
これで準備は整いました。

# rpmbuild -bc /usr/src/redhat/SPECS/php.spec
と実行すると、全てのパッケージをインストールしていない限り、以下のようなエラーがでます。
エラー: Failed build dependencies:
aspell-devel >= 0.50.0 is needed by php-5.0.4-10.i386
libjpeg-devel is needed by php-5.0.4-10.i386

aspell-devel や libjpeg-devel が PHP コンパイル時に必要となるパッケージです。

# yum -y install パッケージ名
このコマンドを実行して、必要とされるパッケージを全てインストールします。

インストールが終わったら、再びパッケージの作成です。

# rpmbuild -bc /usr/src/redhat/SPECS/php.spec
ちょっと処理時間が長いです。
終わったらインストール済みの PHP パッケージを削除します(依存関係の問題が発生するため)。
# yum remove php
終わったら、PHP 関連の RPM をインストールします。
# rpm -ivh /usr/src/redhat/RPMS/i386/php*.i386.rpm

その後、apahce の再起動をして設定が有効になります。
# /sbin/service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]

<? phpinfo(); ?> を記述したファイルにブラウザからアクセスすると、以下のように Multibyte Support の行が追加されていると思います。

mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 3.7.0

ちょっと長くなってしましましたが、パッケージを再構築するほうが、おそらく手軽な方法です。これまでの RPM 版 PHP の環境を引き継ぎつつ、日本語にも対応させるには RPM 再構築が手軽、と思います。

時間がかかってしまいますが、腰を据えておためし下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!