Support

Admin Tools

#29044 geo ip plugin

Posted in ‘Admin Tools for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
n/a
PHP version
n/a
Admin Tools version
n/a

Latest post by on Saturday, 24 February 2018 17:17 CST

jjst135
We use the geo ip plugin on our websites. How important is it that it is up-to-date?
We auto-update Admin Tools so we do'nt see if there is an update for the plugin.
Is it possible to get a signal when there is an update?
It would be very nice if it is updatet within de admintools update.

kind regards, Tjalline Mars

nicholas
Akeeba Staff
Manager
The plugin itself is nothing but a simple PHP code wrapper around the MaxMind GeoIP library. This code has not changed in quite a few years. If there is an update to that plugin you should see an update in Joomla's Extensions, Manage, Update page.

However, the plugin by itself does nothing. It needs the MaxMind GeoIP library. MaxMind says you should update it every 2-4 weeks. If you visit Admin Tools' control panel page and it detects that the age of the actual third party (MaxMInd), binary, GeoIP library is more than 15 days it will give you a link to update it. As documented, this simply pulls a file from MaxMind's servers and extracts it in a known, predictable place on your site. You've read the documentation, right?

Why not do that automatically? Because not all servers allow you to download files from a third party server, extract them and write them reliably. We've seen plenty of servers where the mere action of downloading a file from a third party server causes the site to throw an HTTP error (usually 500 or 504) because of a firewall. We've seen cases where the extraction or the copy in place would fail. And we know for a fact that if the actual binary file gets corrupt in any way, e.g. because Joomla is set up to use the FTP layer and the default behaviour of the FTP server is ASCII transfer which screws up the binary database, you don't just lose that feature, you get an error. Even if that's not the case, downloading and updating a rather large file might cause a timeout error on many shared hosts. This means that automatic updates of the library would kill about 10% of sites. That's why it's a user initiated action and the manual update method is documented.

Further to that, the assumption that everyone wants the country-level, free version of the GeoIP database is wrong. For example, when I want to record where you last logged in from I'd rather use the city-level version of the GeoIP database. So instead of updating the database from the default country-level source I use the free version of the city-level database. Other people may want more accuracy than the free version which means that they have paid for the commercial version of the database with an entirely different download location. In short, making assumptions about the update data location doesn't quite work very well.

If you absolutely need to automate the GeoIP database location you can write a simple CRON job to run a command like this:

wget "http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz" -O /path/to/site/tmp/GeoLite2-Country.mmdb.gz && gunzip /path/to/site/tmp/GeoLite2-Country.mmdb.gz && mv /path/to/site/tmp/GeoLite2-Country.mmdb.gz /path/to/site/plugins/system/akgeoip/db/GeoLite2-Country.mmdb.gz

These are three commands separated by && which means "only carry out the next step if the previous one reports no error". What they do is 1. download the compressed update 2. extract the compressed update (this also removes the compressed file) and 3. move the uncompressed file where it should live. If you use CRON to run it every 15 to 30 days you're set. Caveat: if that for any reason breaks and you end up with incompatible binary data in that db folder your site will break and you'll have to delete the entire plugins/system/akgeoip folder to restore access to it, then reinstall the plugin and re-update the database.

I believe that answers the questions of why this does not happen automatically on a schedule or whenever you update Admin Tools. We don't want to break your sites by installing our software, especially when said breakage would be the result of data and server configuration settings we CAN NOT EVER be in control of since we're neither MaxMind nor your host. The best we can do is provide you with a semi-automated update method for third party data which lets most of our users perform the update with a single click. For those who can't use the automated method we provide manual instructions.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

System Task
system
This ticket has been automatically closed. All tickets which have been inactive for a long time are automatically closed. If you believe that this ticket was closed in error, please contact us.

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!