Read it later.

Web製作に関するサーバ構成やコーディングネタの備忘録として使ってます。

*

GeoIPのインストール

   

IPアドレスから国や都市を取得するためのライブラリが、MaxMind社のGeoIP。
辞書データが無料のものもあるので、それを利用する。

1.GeoIPライブラリをインストール
MaxMind社のホームページ(http://www.maxmind.com/)から、GeoIPライブラリをダウンロードし、インストールします。

cd /usr/local/src
wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar xzvf GeoIP.tar.gz
cd GeoIP-1.4.8
./configure
make
make install

2.GeoIPで使うデータを入手
無料で利用できる国データ、町データをダウンロード、解凍し、配置します。(有料版もあります。)

# 無料版のLiteシリーズのファイルをダウンロードして解凍する。
cd /usr/local/src/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip /usr/local/src/GeoIP.dat.gz
gunzip /usr/local/src/GeoLiteCity.dat.gz

# ダウンロードしたファイルを/usr/local/share/GeoIP/に格納。
# ファイル名を変更していることに注意。
rm -rf /usr/local/share/GeoIP/GeoIP.dat
rm -rf /usr/local/share/GeoIP/GeoIPCity.dat
rm -rf /usr/local/share/GeoIP/GeoLiteCity.dat
cp GeoIP.dat /usr/local/share/GeoIP/
cp GeoLiteCity.dat /usr/local/share/GeoIP/
mv /usr/local/share/GeoIP/GeoLiteCity.dat /usr/local/share/GeoIP/GeoIPCity.dat

3.Peclモジュールのインストール、設定

pecl install geoip

無事インストールできたら、

vim /etc/php.ini

php.iniで、geoip.soを読み込むように設定。

; geoip
extension=geoip.so

設定を反映させるために再起動。

/etc/rc.d/init.d/httpd restart

geoipのライブラリのインタフェースはどういったものがあるかは【マニュアル】を参照。

4.最後に、PHPで動作検証。

<?php
//ホワイトハウス
var_dump(geoip_record_by_name('whitehouse.gov'));
//東京タワー
var_dump(geoip_record_by_name('www.tokyotower.co.jp'));
//訪問者がどこから来たか
var_dump(geoip_record_by_name($_SERVER['REMOTE_ADDR']));
?> 

 - CentOS, PHP

Comment

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  関連記事

centos
logrotate

■logrotateを直接実行 ■参考URL Stray Penguin &#8 …

centos
ext2でのサブディレクトリの配置上限数

やってきたメールをローカルに、サブディレクトリを作成して保存していたら、どう考え …

centos
[Linux]複数ファイルの文字コードを一括で調べる – nkf

開発をしていると、たまに文字コードが異なる状態で保存されたりする。 UTF-8の …

php
Smarty2からSmarty3へのアップグレードガイド

Smarty2を以前から愛用していたのだけど、Smarty3にそろそろ移行しよう …

centos
[CentOS]yumが失敗する(db3 エラー) – Thread died in Berkeley DB library

yumが実行できなくなった! yumコマンドがうまく動かない環境に遭遇した。 解 …

centos
メモリ搭載量などを調べる

メモリ搭載量などを調べる 下記は出力例。#以降は、項目説明。 また、メモリに関し …

centos
qmailの設定ファイル

qmailをつい最近インストールしたのだけど、 下記の5つの設定ファイルが、最低 …

php
$_REQUEST($_POST)に全てのアイテムが格納されない – max_input_vars

フォームに大量のINPUTタグを配置している場合に、 部分的には取れるけど、PO …

centos
開いているポートを調べる(nmap)

開いているポートを調べる(nmap) 外部公開しているポートを調べる方法はいくつ …

centos
CentOS系コマンド覚書

※自分がよく使うもので忘れやすいものを書いてるだけなので、これといってすごいもの …