3

gentoo サーバーに SSH 経由で geoip 拡張機能をインストールしようとしています。やった:

ジオ IP の出現

: わかった

pecl インストール geoip

: わかった

geoiplookup www.bbc.co.uk

: GeoIP Country Edition: GB, United Kingdom GeoIP City Edition, Rev 1: GB, N7, Tadworth, (null), 51.283298, -0.233300, 0, 0 GeoIP City Edition, Rev 0: GB, N7, Tadworth, ( null)、51.283298、-0.233300

いいですね!これをphp拡張機能として追加しようとしました:追加しました

extension=/usr/local/php5/lib/php/extensions/geoip.so

php.iniに

そしてApacheを再起動しました

/etc/init.d/apache 再起動

しかし、私の phpinfo() には geoip ライブラリが含まれておらず、

エラーが発生します: 未定義関数 geoip_record_by_name() の呼び出し

誰かが gentoo に geoip をインストールするのを手伝ってくれますか?

ありがとう

4

2 に答える 2

1

Google なしではどうすればよいでしょうか。私はここでいくつかの指示を見つけました: http://www.pc-freak.net/blog/how-to-install-and-setup-and-test-geoip-support-in-php-on-apache2-in-debian- lenny-linux/ およびここ: http://no2.php.net/manual/en/install.pecl.php

# emerge dev-php/pecl-geoip 
 * Last emerge --sync was 43d 4h 12m 46s ago.
>>> Verifying ebuild manifests
>>> Starting parallel fetch
>>> Emerging (1 of 2) dev-libs/geoip-1.4.8
>>> Installing (1 of 2) dev-libs/geoip-1.4.8
>>> Emerging (2 of 2) dev-php/pecl-geoip-1.0.7-r1
>>> Installing (2 of 2) dev-php/pecl-geoip-1.0.7-r1
>>> Recording dev-php/pecl-geoip in "world" favorites file...
# /etc/init.d/apache2  restart 
 * apache2 not running (no pid file)
 * Starting apache2 ...       [ ok ]

# cd /usr/share/GeoIP
# wget http://www.pc-freak.net/bshscr/geoip_update.sh 
--2012-02-23 15:09:01--  http://www.pc-freak.net/bshscr/geoip_update.sh
Resolving www.pc-freak.net... 83.228.93.76
Connecting to www.pc-freak.net|83.228.93.76|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 270 [application/x-sh]
Saving to: `geoip_update.sh'

100%[=============================>] 270         --.-K/s   in 0s      

2012-02-23 15:09:01 (54.4 MB/s) - `geoip_update.sh' saved [270/270]

# bash geoip_update.sh 
--2012-02-23 15:10:07--  http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
Resolving geolite.maxmind.com... 174.36.207.186
Connecting to geolite.maxmind.com|174.36.207.186|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17572430 (17M) [text/plain]
Saving to: `GeoLiteCity.dat.gz'

100%[=============================================>] 17,572,430  2.63M/s   in 9.0s    

2012-02-23 15:10:16 (1.86 MB/s) - `GeoLiteCity.dat.gz' saved [17572430/17572430]

# ln -s  GeoLiteCity.dat  GeoIPCity.dat 

# cd /var/www/raptor.lan/htdocs/ # <-- MY WEB ROOT
# mkdir -p tmp/geoip
# cd tmp/geoip/
# cat hmz.php 
<?php

echo "<pre>";
print_r(geoip_record_by_name('php.net'));

?>
# curl http://localhost/tmp/geoip/hmz.php
<pre>Array
(
    [continent_code] => NA
    [country_code] => US
    [country_code3] => USA
    [country_name] => United States
    [region] => CA
    [city] => Sunnyvale
    [postal_code] => 94089
    [latitude] => 37.424900054932
    [longitude] => -122.0074005127
    [dma_code] => 807
    [area_code] => 408
)

任務完了?

ところで。設定が間違っている可能性があります。

# equery f dev-php/pecl-geoip  | grep ini 
/etc/php/apache2-php5.3/ext-active/geoip.ini
/etc/php/apache2-php5.3/ext/geoip.ini
/etc/php/cli-php5.3/ext-active/geoip.ini
/etc/php/cli-php5.3/ext/geoip.ini
raptor: ~
# cat /etc/php/apache2-php5.3/ext-active/geoip.ini 
extension=geoip.so
于 2012-02-23T14:16:28.587 に答える
1

ファイル: /usr/local/php5/lib/php/extensions/geoip.so が存在するかどうかを確認しましたか? そうでない場合は、find コマンドを使用して探します。

find /usr -name "geoip.so" -print

extension= の後に適切なパスを入力します

それでも見つからない場合は、pecl を使用してインストールする場合を除き、gentoo パッケージをインストールすることをお勧めします。

emerge -v dev-php5/pecl-geoip
于 2011-05-03T13:18:15.653 に答える