systemed / mod_mbtiles

Serve tiles with Apache directly from an .mbtiles file
19 stars 2 forks source link

Order of lines in the configuration file determines whether apache starts or not? #3

Open SomeoneElseOSM opened 1 year ago

SomeoneElseOSM commented 1 year ago

This is on Ubuntu 22.04, and the apache there identifies itself as "Apache/2.4.52 (Ubuntu)"

mod_mbtiles was installed as per https://github.com/systemed/mod_mbtiles#installation ("sudo apt install apache2-dev libsqlite3-dev", then "sudo apxs -lsqlite3 -i -a -c mod_mbtiles.c"). It was happily serving tiles from one .mbtiles file until I tried to add a second. In the "<VirtualHost *:80>" in "000-default.conf" after " DocumentRoot /var/www/html" I have:

MbtilesEnabled true
MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles
MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles

This fails, and "systemctl status apache2.service" says it failed with a fairly unhelpful "Segmentation fault (core dumped)". However, if I swap the entries around:

MbtilesEnabled true
MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles
MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles

Apache is a happy bunny! I have not changed https://github.com/systemed/mod_mbtiles/blob/master/mod_mbtiles.c , and it still has "#define MAX_TILESETS 20" in it. In addition to the various modules installed by default I also have "LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so" for raster tiles.

The also error occurs (with the entries the other way around) if I use two "known good" mbtiles files (two differently named copies of the same working one).

SomeoneElseOSM commented 8 months ago

Just to add some more examples...

"OK" means that Apache restarts OK with the lines in the /etc/apache2/sites-available/000-default.conf file as described. "fail" means that it doesn't. It's not random, it appears to be entirely predictable based on the current state of 000-default.conf .

MbtilesEnabled true MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles restarts OK

MbtilesEnabled true MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles restart fail

MbtilesEnabled true MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles restart OK

MbtilesEnabled true MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles MbtilesAdd nve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles restart OK

MbtilesEnabled true MbtilesAdd sve01 /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles MbtilesAdd omt_ny /var/www/html/vector/sve01/tilemaker_sve01.mbtiles restart OK

MbtilesEnabled true MbtilesAdd omt_ny /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd sve01 /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles restart OK

MbtilesEnabled true MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles restart fail

MbtilesEnabled true MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd pmt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles fail

MbtilesEnabled true MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd tmt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles fail

MbtilesEnabled true MbtilesAdd sve01 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd amt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles fail

MbtilesEnabled true MbtilesAdd a /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd b /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles OK

MbtilesEnabled true MbtilesAdd c /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd d /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles OK

MbtilesEnabled true MbtilesAdd c /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles OK

MbtilesEnabled true MbtilesAdd sve0 /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles OK

MbtilesEnabled true MbtilesAdd tilem /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles fail

MbtilesEnabled true MbtilesAdd tilen /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles fail

MbtilesEnabled true MbtilesAdd tilema /var/www/html/vector/sve01/tilemaker_sve01.mbtiles MbtilesAdd omt_ny /var/www/html/vector/omt_ny/tilemaker_omt_ny.mbtiles OK