【发布时间】:2022-09-23 23:12:17
【问题描述】:
我正在使用作为基础 Ubuntu 22.10 的系统从 PHP 7.4 升级到 8.1。
在旧图像中,我们使用的是php7.4-geoip,但这个包在 PHP 8.1 中不存在。
apt install php8.1-geoip
找不到包 php8.1-geoip
迁移到较新版本的程序是什么?
-
您需要联系发行版的包维护者并要求他们为 8.1 构建/打包扩展,或者自己构建扩展。
我正在使用作为基础 Ubuntu 22.10 的系统从 PHP 7.4 升级到 8.1。
在旧图像中,我们使用的是php7.4-geoip,但这个包在 PHP 8.1 中不存在。
apt install php8.1-geoip
找不到包 php8.1-geoip
迁移到较新版本的程序是什么?
该软件包尚不可用,但您可以通过 composer 安装。
确保机器上安装了 GeoIP:
apt install -y geoip-bin geoip-database
geoipupdate -v
通过 PHP Composer 安装:
curl -sS https://getcomposer.org/installer | php
php composer.phar require geoip2/geoip2:~2.0
快速测试脚本以确保一切正常:
<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;
$geoip = new Reader('/usr/share/GeoIP/GeoLite2-City.mmdb');
$reader = $geoip->city('12.87.118.0');
echo "I should be United States.... ".$reader->country->name."\n";
输出:
root@cc19c55aedef:/# php test-geoip.php
I should be United States.... United States
【讨论】: