5月 07
2010

Snow Leopardの標準PHPにgettext拡張を追加しようと思います。

Snow Leopardには、もちろん標準でPHPがインストールされています。
それに、Snow LeopardになってからGDやiconv等は標準で入っています。随分使い安くなりました。
でも、いまだにgettextは標準でPHPに入っていません。

そうなると、普通はMacPortなどを使ってインストールするのですが、PHPでgettextを使うだけで、ものすごく沢山のport(パッケージ)がインストールされてしまいます。これもなんだかですね。。。。

そこで、さっくりとgettextとそのPHPのextensionだけをインストールできれば楽ちん(?)ですし、時間もさほどかからないと思って作業したので、そのメモです。いつものように Your Own Risk です。(^_^)

前提として、XCodeはインストールしておいてください。お約束です。

1.お好きなところに作業ディレクトリを作成してください。

mkdir -p /tmp/hoge
cd /tmp/hoge

2. gettextソースコードを取ってきてコンパイルです。

curl -O ftp://ftp.gnu.org/gnu/gettext/gettext-0.17.tar.gz
tar xzpf gettext-0.17.tar.gz
cd /tmp/hoge/gettext-0.17/gettext-runtime
./configure
sudo make

3. gettextのインストールです。

sudo make install

これにて、gettextがインストールされました。次は、gettextのPHP Extensionを作りましょう。

4. Darwinのオフィシャルサイトから自分が使っている標準PHPと同じバーンのソースを取ってコンパイル・インストールです。私の環境はMacOS X 10.6.3で、PHPは5.3.1 でした。

cd /tmp/hoge
curl -O http://www.opensource.apple.com/source/apache_mod_php/apache_mod_php-53.1.1/php-5.3.1.tar.bz2
tar xjf php-5.3.1.tar.bz2
cd /tmp/hoge/php-5.3.1/ext/gettext
sudo phpize
./configure
sudo make
sudo make install

さあ、これでMacOS Xの標準PHPで利用できるgettext Extensionがインストールされました。sudo make installしたときに、どのディレクトリにライブラリをインストールしたか表示されると思います。私の環境では、/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.soにインストールされております。

さてさて、ここからが重要。(^_^)
gettextの拡張モジュールをPHPが認識出るようにphp.iniを変更します。

5. PHPとgettextの融合

viが使えると話は早いのですが。。。。とりあえずテキストエディタで /etc/php.iniを編集します。もしかすると、/etc/php.iniファイルがないかもしれません。その時には焦らず、/etc/php.ini.defaultとか、/etc/php.ini.orgとかからコピーしてください。

まずは、/etc/php.ini ファイルの適当な行に

extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/gettext.so

を1行追加します。私の場合は 953行あたりに入れました。コメントアウトされたextensionの定義がずらずら並んでいるの箇所があるのでわかると思います。

以上で終了です。

本当にgettextが組み込まれたか確認するには、定番の

<?php
phpinfo();
  ?>

ファイルをApache経由のcgiで表示させれば確認できると思います。