2013年11月23日土曜日

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の再起動を忘れないこと。

0 件のコメント:

コメントを投稿