Php – GeoIP PHP extension not working on CentOS 7

geoiphttpdPHP

I can't get the GeoIP PHP extension working on CentOS 7 and PHP 5.5.21.

I first started with yum install php-pecl-geoip and restarted httpd. I then did a simple test:

$record = geoip_record_by_name($_SERVER["REMOTE_ADDR"]);
if ($record) {
    print_r($record);
}

I got an error 500, and in the error log, I see

PHP Fatal error: Call to undefined function geoip_record_by_name()

So I figured the yum package was bad and removed it. I then did pecl install geoip and enabled the extension /etc/php.d/geoip.ini with extension=geoip.so and restarted httpd. Same error – undefined function.

To make sure the install was correct, I tried the pecl install again and received this output:

pecl/geoip is already installed and is the same as the released version 1.0.8

I do have Apache's mod_geoip installed. Do the 2 conflict with each other?

What else can I check?

Best Answer

It looks like you've obtained PHP 5.5 from Red Hat Software Collections. Unfortunately this SCL doesn't include the PECL geoip extension, so you will need to install it yourself.

scl enable php55 'pecl install geoip'