2010-09-04 80 views
3

我嘗試在我的gentoo服務器上通過SSH安裝geoip擴展。 我所做的:gentoo geoip installation

emerge Geo-IP

:OK

pecl install geoip

:OK

geoiplookup www.bbc.co.uk

:給我 GeoIP的國家版本:GB,英國 的GeoIP城市版,版本1:GB ,N7,Tadworth,(null),51.283298,-0.233300,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

和restatred阿帕奇與

/etc/init.d/apache restart

但我的phpinfo()函數不包含任何的GeoIP庫和

給我錯誤:Call to und已定義的函數geoip_record_by_name()

有人可以幫我安裝gentoo gentoo嗎?

感謝

回答

1

你檢查,如果文件:/usr/local/php5/lib/php/extensions/geoip.so都存在?如果沒有,使用find命令查找它:

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

,並把正確的路徑後延=

如果沒有找到它,除非你想擁有它通過PECL安裝,您可能希望安裝gentoo軟件包:

emerge -v dev-php5/pecl-geoip 
1

如果不使用谷歌,我們會做什麼? 我發現了一些說明這裏: 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 
) 

任務完成了?

btw。你的配置可能是錯誤的。

# 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