XAMPPのPHPにgeoipをインストールするための要点だけ

手元のXAMPP環境のPHPからgeoipが使えるようにセットアップしたのでインストールメモ。具体的には、国コード(”JP”とか)からタイムゾーンを判定するのをやりたいとする。

環境:

OSX: 10.8.5
geoip: 1.5.1
XAMPP: 1.7.3
Homebrew 0.9.5 

Homebrewでgeoipパッケージをインストール。XAMPPのphpが32bitバイナリなので、geoipも32bit(ユニバーサルバイナリ)でビルドする必要がある。具体的には:

$ brew install geoip –universal

ちなみにこれは
$ brew edit geoipすると

ENV.universal_binary if build.universal?

ということになっているので、–universalオプションがFormulaの中ではbuild.universalという変数になっているみたい(ちなみに当たり前だけど、これを無視して単純にENV.universal_binaryをFormula内で定義しても動作した)。

2. XAMPPの対応するバージョン用のDeveloper Packageをsourceforgeから落として来て追加インストール。インストールは追加インストールでOKみたい。XAMPP/xamppfilesにincludeファイルとかがインストールされる。

ダウンロードは以下あたりから該当のバージョンを探す。
http://sourceforge.net/projects/xampp/files/

※これを入れないと、pecl install中にphp.iniが無いとかいってエラー終了する。

3. XAMPPのpeclを使ってgeoipをインストール。php.iniは自動的に書き換えてくれるみたい。

/PATH/TO/XAMPP/xamppfiles/bin/pecl install geoip

ビルドが成功したら、有効になっていることを確認する。

$ ./php -r ‘phpinfo();’|grep geoip
geoip
geoip support => enabled
geoip extension version => 1.0.8
geoip library version => 1004005
geoip.custom_directory => no value => no value

こういうことができるようになりました。

$ ./php -r ‘echo geoip_time_zone_by_country_and_region(“JP”);’
Asia/Tokyo

あとはApacheの再起動を忘れないこと。

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA