php安装 geoip 模块/扩展的方法

php安装 geoip 模块/扩展的方法

一、安装PHP模块/扩展的方法

安装前建议先执行 /usr/local/php/bin/php -m 看一下要安装的模块是否已安装。然后下载当前PHP版本的模块/扩展源码并解压。

大部分php扩展/模块的安装就是三个步骤,在源码目录下执行:
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make && make install
有些模块可能会稍微有差异,具体看模块的安装文件就可以。

修改/usr/local/php/etc/php.ini
查找:extension_dir 在下面一行添加上extension = “geoip.so”
保存,执行/etc/init.d/php-fpm restart 重启。

二、以安装 geoip 为例

1. 安装模块
从这里下载最新的源码 https://pecl.php.net/package/geoip

wget https://pecl.php.net/get/geoip-1.1.1.tgz
tar xzvf geoip-1.1.1.tgz
cd geoip-1.1.1
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make && make install

修改 vim /usr/local/php/etc/php.ini
查找:extension_dir 在下面一行添加上extension = “geoip.so”
保存后重启 php-fpm# /etc/init.d/php-fpm restart

到此 geoip 已经成功安装为php模块

2. 安装数据库
下来需要安装该模块需要的数据库,默认路径为 /usr/share/GeoIP/GeoIP.dat

数据库的安装用 sudo apt-get install libgeoip-dev

或者是到作者的网站上下载数据库
http://www.maxmind.com/app/geoip_country
http://www.maxmind.com/app/geolitecity

修改 vim /usr/local/php/etc/php.ini
在extension = “geoip.so”下面一行添加上
geoip.custom_directory=/path/to/GeoIP/GeoIP.dat

如果数据库命名为GeoLiteCity.dat,则PECL扩展名将无法识别数据库,因此请确保它名为GeoIPCity.dat。
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
sudo mkdir -v /usr/share/GeoIP
sudo mv -v GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

三、另一种安装法
如果PHP 默认安装在 /usr/bin 目录,请运行以下命令:

sudo apt-get install php5-geoip php5-dev libgeoip-dev
sudo pecl install geoip

将以下内容添加到您的php.ini文件中:
extension=geoip.so
geoip.custom_directory=/usr/share/GeoIP/GeoIP.dat

重新启动 PHP 及服务器

四、没有安装该模块时,使用相关的类
如果没有加载geoip模块,可以用 http://php.net/manual/zh/book.geoip.php 提到的方法,使用作者的 class.
源代码在这里 https://github.com/maxmind/geoip-api-php

五、资料来源
https://piwik.org/faq/how-to/faq_164/
https://www.vpser.net/manage/lnmp-php-install-ext.html
http://php.net/manual/zh/ref.geoip.php
http://php.net/manual/zh/geoip.setup.php
http://php.net/manual/zh/book.geoip.php

 

 

原文链接:,转发请注明来源!
评论已关闭。