GeoIP PHP extension not working on CentOS 7

Pat asked:

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?

My 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'

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.