Comments (8)
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.
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.
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.
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.
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.
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.
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.
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)
- Add tag for v1.7.0 HOT 2
- cant make HOT 4
- Metadata's buildEpoch parsed as a string instead of integer. HOT 7
- TypeError in Db\Reader\Decoder with bcmath extension HOT 1
- TypeError in Db\Reader\Decoder with bcmath extension HOT 3
- Compile MaxMind-DB-Reader module statically into PHP 8.0.3 on CentOS 8 HOT 1
- [feature request] MMDB writer HOT 2
- Runtime define prevents opcache preloading HOT 1
- Equivalent of geoip_region_name_by_code HOT 1
- Latest release has `git://` submodule -> cannot clone HOT 2
- Performance issue, There are any other option for performance? HOT 2
- Error "The MaxMind DB file's search tree is corrupt" for GeoLite2 HOT 1
- Potential issue with 128-bit integers? HOT 2
- Fedora RPM package php-maxmind-db-reader-1.11.0-7.fc38.noarch HOT 2
- Db/Reader.php / Util.php : Maximum execution time of 30 seconds exceeded HOT 3
- Where does the documentation for this extension reside? HOT 3
- Windows DLL available to download HOT 1
- How can you tell if the C extension is used? HOT 1
- SIGSEGV with native C extension when IP queried is null/empty string HOT 17
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from maxmind-db-reader-php.