Git Product home page Git Product logo

Comments (8)

milesizzo avatar milesizzo commented on June 2, 2024 2

Well I'm still not sure why the pure PHP library encountered that exception, but I've managed to get the extension working and all is well. The problem there was purely my own fault: I was using php-config --extension-dir to find where to deploy maxminddb.so, but hadn't installed the php-dev package (php7.4-dev) in my deploy scripts. So it worked in my test environment, but not in production.

For anyone who comes across this and is unsure how to do this in Ubuntu (or even a Github action):

# add-apt-repository -y ppa:maxmind/ppa
# apt-get -qq -y install libmaxminddb0 libmaxminddb-dev mmdb-bin
# cp path/to/your/maxminddb.ini /etc/php/7.4/mods-available
# cp path/to/your/maxminddb.so $(php-config --extension-dir)
# phpenmod maxminddb

The contents of my maxminddb.ini is simply:

extension=maxminddb.so

Don't forget to restart PHP-FPM if you're using it.

Note that I also removed maxmind-db/reader from my composer.json and added "ext-maxminddb": "*".

from maxmind-db-reader-php.

oschwald avatar oschwald commented on June 2, 2024 1

I apologize. A colleague pointed out that we do have an exception with that error text. It would only happen if the database was corrupt or invalid.

from maxmind-db-reader-php.

milesizzo avatar milesizzo commented on June 2, 2024 1

Thanks. I'll continue my search. First port of call is to figure out why the extension isn't being loaded. Thanks, I'll post my findings if it may help others.

from maxmind-db-reader-php.

oschwald avatar oschwald commented on June 2, 2024

That sounds like an error displayed to the end user by your web server. Do you have the error as recorded in the log file?

from maxmind-db-reader-php.

milesizzo avatar milesizzo commented on June 2, 2024

Excellent, thank you for the additional info!

Offhand you couldn't think of something that might cause this as a side-effect (say, caching a Reader object in APCu or using opcache)? I'm confused why it works via command line and not in PHP-FPM (fully suspecting that it's my code causing the issue).

from maxmind-db-reader-php.

milesizzo avatar milesizzo commented on June 2, 2024

And as a follow-up question: should this code path ever even be called if I'm using the extension correctly?

from maxmind-db-reader-php.

oschwald avatar oschwald commented on June 2, 2024

If the C extension is loaded, this code should not be called at all.

This could potentially happen if you update the database file in a non-atomic way (e.g., just copying the new file over the old file). The pure PHP reader also has an open file handle so anything that could mess up the state of the file handle could potentially cause issues, although I would generally expect the exception message to be different.

from maxmind-db-reader-php.

oschwald avatar oschwald commented on June 2, 2024

I am glad you got the extension working! I'll go ahead and close this, but please do feel free to reopen it if you ever narrow down the issue you were experiencing with the pure PHP reader.

from maxmind-db-reader-php.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.