问题
So here I come with my first Stackoverflow question:)
It's been already some days spent on building my own tile server. As many others I followed instructions written on switch2osm site and unfortunately got no luck.
When I run command renderd -f -c /etc/renderd.conf
it seems to start to prepare itself but then it stops without any error and nothing happens. The last message it shows is: renderd[4226] <Debug>: Using web mercator projection settings
and ... silence!
Please help me, I'm going crazy and can't sleep:)
Here is my data:
OS: Mac OS 10.9.4
Python: 2.7.5
Mapnik: 3.0.1-pre
Server version: Apache/2.2.26 (Unix)
Render messages:
renderd[4226] <Info>: Rendering daemon started
renderd[4226] <Error>: Initiating reqyest_queue
renderd[4226] <Info>: Parsing section renderd
renderd[4226] <Info>: Parsing render section 0
renderd[4226] <Info>: Parsing section renderd01
renderd[4226] <Info>: Parsing render section 1
renderd[4226] <Info>: Parsing section renderd02
renderd[4226] <Info>: Parsing render section 2
renderd[4226] <Info>: Parsing section mapnik
renderd[4226] <Info>: Parsing section default
renderd[4226] <Info>: config renderd: unix socketname=/var/run/renderd/renderd.sock
renderd[4226] <Info>: config renderd: num_threads=4
renderd[4226] <Info>: config renderd: num_slaves=8
renderd[4226] <Info>: config renderd: tile_dir=/var/lib/mod_tile
renderd[4226] <Info>: config renderd: stats_file=/var/run/renderd/renderd.stats
renderd[4226] <Info>: config mapnik: plugins_dir=/usr/local/lib/mapnik/input
renderd[4226] <Info>: config mapnik: font_dir=/usr/local/lib/mapnik/fonts
renderd[4226] <Info>: config mapnik: font_dir_recurse=1
renderd[4226] <Info>: config renderd(0): Active
renderd[4226] <Info>: config renderd(0): unix socketname=/var/run/renderd/renderd.sock
renderd[4226] <Info>: config renderd(0): num_threads=4
renderd[4226] <Info>: config renderd(0): tile_dir=/var/lib/mod_tile
renderd[4226] <Info>: config renderd(0): stats_file=/var/run/renderd/renderd.stats
renderd[4226] <Info>: config renderd(1): unix socketname=/var/run/renderd/renderd.sock
renderd[4226] <Info>: config renderd(1): num_threads=4
renderd[4226] <Info>: config renderd(1): tile_dir=/var/lib/mod_tile
renderd[4226] <Info>: config renderd(1): stats_file=(null)
renderd[4226] <Info>: config renderd(2): unix socketname=/var/run/renderd/renderd.sock
renderd[4226] <Info>: config renderd(2): num_threads=4
renderd[4226] <Info>: config renderd(2): tile_dir=/var/lib/mod_tile
renderd[4226] <Info>: config renderd(2): stats_file=(null)
renderd[4226] <Info>: config map 0: name(default) file(/Users/Alenka/src/mapnik-style/osm.xml) uri(/osm_tiles/) htcp() host(localhost)
renderd[4226] <Info>: Initialising unix server socket on /var/run/renderd/renderd.sock
renderd[4226] <Debug>: Created server socket 3
renderd[4226] <Info>: Renderd is using mapnik version 3.0.0
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSans-Bold.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSans-BoldOblique.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSans-ExtraLight.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSans-Oblique.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSans.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansCondensed-Bold.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansCondensed-BoldOblique.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansCondensed-Oblique.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansCondensed.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansMono-Bold.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansMono-BoldOblique.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansMono-Oblique.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSansMono.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerif-Bold.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerif-BoldItalic.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerif-Italic.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerif.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerifCondensed-Bold.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerifCondensed-BoldItalic.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerifCondensed-Italic.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/DejaVuSerifCondensed.ttf
renderd[4226] <Debug>: DEBUG: Loading font: /usr/local/lib/mapnik/fonts/unifont-7.0.05.ttf
Running in foreground mode...
Jul 30 18:46:39 Alenkas-iMac.local renderd[4226] <Debug>: Starting stats thread
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
debug: init_storage_backend: initialising file storage backend at: /var/lib/mod_tile
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: Loading parameterization function for
renderd[4226] <Info>: Loading parameterization function for
renderd[4226] <Info>: Loading parameterization function for
renderd[4226] <Info>: Loading parameterization function for
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: Initialising unix client socket on /var/run/renderd/renderd.sock
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 4
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 7, number 1
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 8
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 9
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 11
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 13
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 14
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 15
renderd[4226] <Info>: socket /var/run/renderd/renderd.sock initialised to fd 17
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 19, number 2
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 20, number 3
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 21, number 4
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 22, number 5
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 23, number 6
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 24, number 7
renderd[4226] <Debug>: DEBUG: Got incoming connection, fd 25, number 8
renderd[4226] <Debug>: Using web mercator projection settings
renderd[4226] <Debug>: Using web mercator projection settings
renderd[4226] <Debug>: Using web mercator projection settings
renderd[4226] <Debug>: Using web mercator projection settings
Logs from /var/log/apache2/error_log:
[error] [client ::1] File does not exist: /Library/WebServer/Documents/osm_tiles/0
[error] [client ::1] File does not exist: /Library/WebServer/Documents/osm_tiles/14
[notice] SIGHUP received. Attempting to restart
[notice] Digest: generating secret for digest authentication ...
[notice] Digest: done
[notice] Apache/2.2.26 (Unix) DAV/2 mod_ssl/2.2.26 OpenSSL/0.9.8y configured -- resuming normal operations
[notice] SIGHUP received. Attempting to restart
[notice] Digest: generating secret for digest authentication ...
[notice] Digest: done
[notice] Apache/2.2.26 (Unix) DAV/2 mod_ssl/2.2.26 OpenSSL/0.9.8y configured -- resuming normal operations
/etc/renderd.conf:
[renderd]
;socketname=/var/run/renderd/renderd.sock
num_threads=4
tile_dir=/var/lib/mod_tile
stats_file=/var/run/renderd/renderd.stats
[renderd01]
;iphostname=::1
;ipport=7654
;num_threads=4
;tile_dir=rados://tiles/etc/ceph/ceph.conf
;stats_file=/var/run/renderd/renderd.stats
[renderd02]
;iphostname=::1
;ipport=7654
;num_threads=8
;tile_dir=memcached://
;stats_file=/var/run/renderd/renderd.stats
[mapnik]
plugins_dir=/usr/local/lib/mapnik/input
font_dir=/usr/local/lib/mapnik/fonts
font_dir_recurse=1
[default]
URI=/osm_tiles/
TILEDIR=/var/lib/mod_tile
XML=/Users/Alenka/src/mapnik-style/osm.xml
HOST=localhost
TILESIZE=256
;HTCPHOST=proxy.openstreetmap.org
;MINZOOM=0
;MAXZOOM=18
;TYPE=png image/png
;DESCRIPTION=This is a description of the tile layer used in the tile json request
;ATTRIBUTION=©<a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a> and <a href=\"http://wiki.openstreetmap.org/wiki/Contributors\">contributors</a>, <a href=\"http://opendatacommons.org/licenses/odbl/\">ODbL</a>
;SERVER_ALIAS=http://localhost/
;CORS=*
;ASPECTX=1
;ASPECTY=1
;SCALE=1.0
mod_tile.conf:
LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /osm_tiles/
LoadTileConfigFile /etc/renderd.conf
ModTileRenderdSocketName /var/run/renderd/renderd.sock
# Timeout before giving up for a tile to be rendered
ModTileRequestTimeout 0
# Timeout before giving up for a tile to be rendered that is otherwise missing
ModTileMissingRequestTimeout 30
ErrorLog /var/log/apache2/error_log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access_log combined
</VirtualHost>
I've checked all the paths, I've googled everything. I'm not denying I might've missed smth, but I think when I look at the screen I understand nothing, my head is a complete mess right now.
P.s. btw I'm not sure if mod_tile and renderd are installed correctly as while I was doing make
process I got some errors in the end (the same was for sudo make install
and sudo make imstall-mod_tile
):
Making all in iniparser3.0b
make[1]: Nothing to be done for `all'.
apxs -c -I./includes -lcurl ./src/mod_tile.c ./src/sys_utils.c ./src/store.c ./src/store_file.c ./src/store_file_utils.c ./src/store_memcached.c ./src/store_rados.c ./src/store_ro_http_proxy.c ./src/store_ro_composite.c ./src/store_null.c
/usr/share/apr-1/build-1/libtool --silent --mode=compile /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -I./includes -c -o ./src/mod_tile.lo ./src/mod_tile.c && touch ./src/mod_tile.slo
./src/mod_tile.c:325:41: warning: format specifies type 'long' but the argument has type 'apr_os_thread_t'
(aka 'struct _opaque_pthread_t *') [-Wformat]
tile_layer, lifecycle_pool, os_thread);
^~~~~~~~~
./src/mod_tile.c:338:164: warning: format specifies type 'long' but the argument has type 'apr_os_thread_t'
(aka 'struct _opaque_pthread_t *') [-Wformat]
...No storage backends for this lifecycle %pp, creating it in thread %li", lifecycle_pool, os_thread);
~~~ ^~~~~~~~~
./src/mod_tile.c:346:160: warning: format specifies type 'long' but the argument has type 'apr_os_thread_t'
(aka 'struct _opaque_pthread_t *') [-Wformat]
...Found backends (%pp) for this lifecycle %pp in thread %li", stores, lifecycle_pool, os_thread);
~~~ ^~~~~~~~~
./src/mod_tile.c:354:33: warning: format specifies type 'long' but the argument has type 'apr_os_thread_t'
(aka 'struct _opaque_pthread_t *') [-Wformat]
lifecycle_pool, os_thread, tile_layer);
^~~~~~~~~
./src/mod_tile.c:358:45: warning: format specifies type 'long' but the argument has type 'apr_os_thread_t'
(aka 'struct _opaque_pthread_t *') [-Wformat]
lifecycle_pool, tile_layer, os_thread);
^~~~~~~~~
./src/mod_tile.c:375:75: warning: format specifies type 'long' but the argument has type 'off_t' (aka 'long long')
[-Wformat]
cmd->xmlname, cmd->x, cmd->y, cmd->z, rdata->store, stat.size, stat.expired, stat.mtime);
^~~~~~~~~
./src/mod_tile.c:505:22: warning: format specifies type 'long long' but the argument has type 'long' [-Wformat]
maxAge));
^~~~~~
./src/mod_tile.c:756:19: error: no member named 's6_addr32' in 'struct in6_addr'
hashkey = (ip.s6_addr32[0] ^ ip.s6_addr32[1] ^ ip.s6_addr32[2] ^ ip.s6_addr32[3]) % DELAY_HASHTABLE_SIZE;
~~ ^
./src/mod_tile.c:756:37: error: no member named 's6_addr32' in 'struct in6_addr'
hashkey = (ip.s6_addr32[0] ^ ip.s6_addr32[1] ^ ip.s6_addr32[2] ^ ip.s6_addr32[3]) % DELAY_HASHTABLE_SIZE;
~~ ^
./src/mod_tile.c:756:55: error: no member named 's6_addr32' in 'struct in6_addr'
hashkey = (ip.s6_addr32[0] ^ ip.s6_addr32[1] ^ ip.s6_addr32[2] ^ ip.s6_addr32[3]) % DELAY_HASHTABLE_SIZE;
~~ ^
./src/mod_tile.c:756:73: error: no member named 's6_addr32' in 'struct in6_addr'
hashkey = (ip.s6_addr32[0] ^ ip.s6_addr32[1] ^ ip.s6_addr32[2] ^ ip.s6_addr32[3]) % DELAY_HASHTABLE_SIZE;
~~ ^
./src/mod_tile.c:1084:21: warning: format specifies type 'long long' but the argument has type 'long' [-Wformat]
maxAge));
^~~~~~
./src/mod_tile.c:1129:39: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoResp200: %li\n", local_stats.noResp200);
~~~ ^~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1130:39: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoResp304: %li\n", local_stats.noResp304);
~~~ ^~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1131:39: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoResp404: %li\n", local_stats.noResp404);
~~~ ^~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1132:39: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoResp503: %li\n", local_stats.noResp503);
~~~ ^~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1133:39: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoResp5XX: %li\n", local_stats.noResp5XX);
~~~ ^~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1134:41: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoRespOther: %li\n", local_stats.noRespOther);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1135:42: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoFreshCache: %li\n", local_stats.noFreshCache);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1136:40: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoOldCache: %li\n", local_stats.noOldCache);
~~~ ^~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1137:44: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoVeryOldCache: %li\n", local_stats.noVeryOldCache);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1138:43: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoFreshRender: %li\n", local_stats.noFreshRender);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1139:41: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoOldRender: %li\n", local_stats.noOldRender);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1140:45: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoVeryOldRender: %li\n", local_stats.noVeryOldRender);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1142:51: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoRespZoom%02i: %li\n", i, local_stats.noRespZoom[i]);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1144:47: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoTileBufferReads: %li\n", local_stats.noTotalBufferRetrieval);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1145:53: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "DurationTileBufferReads: %li\n", local_stats.totalBufferRetrievalTime);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1147:61: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "NoTileBufferReadZoom%02i: %li\n", i, local_stats.noZoomBufferRetrieval[i]);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1148:67: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r, "DurationTileBufferReadZoom%02i: %li\n", i, local_stats.zoomBufferRetrievalTime[i]);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1153:70: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r,"NoRes200Layer%s: %li\n", tile_config->baseuri, local_stats.noResp200Layer[i]);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
./src/mod_tile.c:1154:70: warning: format specifies type 'long' but the argument has type 'apr_uint64_t'
(aka 'unsigned long long') [-Wformat]
ap_rprintf(r,"NoRes404Layer%s: %li\n", tile_config->baseuri, local_stats.noResp404Layer[i]);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
27 warnings and 4 errors generated.
apxs:Error: Command failed with rc=65536
回答1:
renderd[4226] <Debug>: Using web mercator projection settings
means everything is OK. The configuration of mapnik and mod_tile is correct. It seems that your Apache doesn't work well.
Firstly, make sure your Apache is working well. You need to visit localhost:80
to verify if the Apache works well. If Apache does not work, you need to check the firewall if the port 80 is open. On CentOS, you can use netstat -ntlp
to check if the port 80 is listening. After that, you can visit the website localhost:80
again. If Apache works well, you will see apache default page.
If renderd still not working, you need to check the logs from Apache such as /var/log/apache2/error_log
. This time the problem probably come from socket connect failed for: /var/run/renderd/renderd.sock with reason: Permission denied
, this problem comes from SELinux, you can just turn it off by setenforce 0
.
You can solve these problems by analysing the logs from Apache after Apache working well.
来源:https://stackoverflow.com/questions/31729036/render-or-not-to-render-building-a-tile-server