我正在尝试按照switch2osm.org上的说明手动构建地图服务器。我配置了一切。我有一个用户mayank拥有的数据库mayank,我正在尝试使用renderd但我得到这个错误套接字绑定失败:/var/run/renderd/renderd.sock。现在,如果我切换到root并执行相同操作它完全没有直接权限问题,因为我已经递归地更改了目录的所有者。但可能存在一些中间许可问题。我不能以root身份运行它,因为我正在使用psql而我的所有者为数据库mayank是我的用户mayank,这导致没有渲染的tile。我不想重新安装我的操作系统,但要认真理解这个问题的原因。请帮助我是openstreetmaps和Linux的新手。 以下是我的流程的确切代码:
mayank@DC050:~$ renderd
socket bind failed for: /var/run/renderd/renderd.sock
mayank@DC050:~$ sudo renderd
sudo: /var/lib/sudo owned by uid 1000, should be uid 0
[sudo] password for mayank:
mayank@DC050:~$
mayank@DC050:~$ renderd -f -c /usr/local/etc/renderd.conf
renderd[9178]: Rendering daemon started
renderd[9178]: Initiating reqyest_queue
iniparser: syntax error in /usr/local/etc/renderd.conf (8):
-> ;[renderd01]
iniparser: syntax error in /usr/local/etc/renderd.conf (15):
-> ;[renderd02]
iniparser: syntax error in /usr/local/etc/renderd.conf (33):
-> ;** config options used by mod_tile, but not renderd **
iniparser: syntax error in /usr/local/etc/renderd.conf (42):
-> ;[style2]
iniparser: syntax error in /usr/local/etc/renderd.conf (49):
-> ;** config options used by mod_tile, but not renderd **
renderd[9178]: Parsing section renderd
renderd[9178]: Parsing render section 0
renderd[9178]: Parsing section mapnik
renderd[9178]: Parsing section default
renderd[9178]: config renderd: unix socketname=/var/run/renderd/renderd.sock
renderd[9178]: config renderd: num_threads=4
renderd[9178]: config renderd: num_slaves=0
renderd[9178]: config renderd: tile_dir=/var/lib/mod_tile
renderd[9178]: config renderd: stats_file=/var/run/renderd/renderd.stats
renderd[9178]: config mapnik: plugins_dir=/usr/local/lib/mapnik/input
renderd[9178]: config mapnik: font_dir=/usr/local/lib64/mapnik/fonts
renderd[9178]: config mapnik: font_dir_recurse=1
renderd[9178]: config renderd(0): Active
renderd[9178]: config renderd(0): unix socketname=/var/run/renderd/renderd.sock
renderd[9178]: config renderd(0): num_threads=4
renderd[9178]: config renderd(0): tile_dir=/var/lib/mod_tile
renderd[9178]: config renderd(0): stats_file=/var/run/renderd/renderd.stats
renderd[9178]: config map 0: name(default) file(/home/mayank/src/mapnik-style/osm.xml) uri(/osm_tiles/) htcp() host(localhost)
renderd[9178]: Initialising unix server socket on /var/run/renderd/renderd.sock
socket bind failed for: /var/run/renderd/renderd.sock
以下是root用户,但此过程不会生成任何切片,可能是因为数据库事物
renderd -f -c /usr/local/etc/renderd.conf
renderd[9347]: Rendering daemon started
renderd[9347]: Initiating reqyest_queue
iniparser: syntax error in /usr/local/etc/renderd.conf (8):
-> ;[renderd01]
iniparser: syntax error in /usr/local/etc/renderd.conf (15):
-> ;[renderd02]
iniparser: syntax error in /usr/local/etc/renderd.conf (33):
-> ;** config options used by mod_tile, but not renderd **
iniparser: syntax error in /usr/local/etc/renderd.conf (42):
-> ;[style2]
iniparser: syntax error in /usr/local/etc/renderd.conf (49):
-> ;** config options used by mod_tile, but not renderd **
renderd[9347]: Parsing section renderd
renderd[9347]: Parsing render section 0
renderd[9347]: Parsing section mapnik
renderd[9347]: Parsing section default
renderd[9347]: config renderd: unix socketname=/var/run/renderd/renderd.sock
renderd[9347]: config renderd: num_threads=4
renderd[9347]: config renderd: num_slaves=0
renderd[9347]: config renderd: tile_dir=/var/lib/mod_tile
renderd[9347]: config renderd: stats_file=/var/run/renderd/renderd.stats
renderd[9347]: config mapnik: plugins_dir=/usr/local/lib/mapnik/input
renderd[9347]: config mapnik: font_dir=/usr/local/lib64/mapnik/fonts
renderd[9347]: config mapnik: font_dir_recurse=1
renderd[9347]: config renderd(0): Active
renderd[9347]: config renderd(0): unix socketname=/var/run/renderd/renderd.sock
renderd[9347]: config renderd(0): num_threads=4
renderd[9347]: config renderd(0): tile_dir=/var/lib/mod_tile
renderd[9347]: config renderd(0): stats_file=/var/run/renderd/renderd.stats
renderd[9347]: config map 0: name(default) file(/home/mayank/src/mapnik-style/osm.xml) uri(/osm_tiles/) htcp() host(localhost)
renderd[9347]: Initialising unix server socket on /var/run/renderd/renderd.sock
renderd[9347]: Created server socket 5
renderd[9347]: Renderd is using mapnik version 2.0.3
renderd[9347]: Unable to open font directory: /usr/local/lib64/mapnik/fonts
Running in foreground mode...
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[9347]: 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
renderd[9347]: Using web mercator projection settings
renderd[9347]: Using web mercator projection settings
renderd[9347]: Using web mercator projection settings
renderd[9347]: Using web mercator projection settings
答案 0 :(得分:19)
我遇到了几乎同样的问题。据我所知,这背后可能有两个原因。尝试再次使用
运行sudo -u 'username' renderd -f -c /usr/local/etc/renderd.conf
应用建议的解决方案之一后。将'username'替换为运行renderd的用户名:
您可能对 /var/run/renderd/renderd.sock 文件没有书面权限。
您的解决方案是更改目录的所有者:
sudo chown 'username' /var/run/renderd
和/或通过键入
来更改文件的所有者sudo chown 'username' /var/run/renderd/renderd.sock
,其中'username'代表将运行renderd的用户。
我的错误信息几乎与您相同。
在我的情况下,我错过了 / var / run / renderd 目录。我的解决方案是创建 / var / run / renderd 目录,然后更改其所有者:
sudo mkdir /var/run/renderd
sudo chown 'username' /var/run/renderd
,其中'username'是user,将运行renderd。
答案 1 :(得分:1)
您的renderd.conf
文件中似乎存在语法错误。只需删除renderd.conf
中的尾随分号
;[renderd02]
Trailing分号表示评论。因此,除非你已经注释掉了,否则前面不应该有分号。
答案 2 :(得分:1)
我在这里找到的所有提示都是正确的。但我还需要在 /usr/local/etc/renderd.conf 中替换它:
;** config options used by mod_tile, but not renderd **
进入这个:
;xxx=** config options used by mod_tile, but not renderd **
看起来分号被视为注释,但是后面的字符串仍然需要应用于key=value
公式,否则你会得到“
iniparser:/usr/local/etc/renderd.conf中的语法错误
或者您也可以删除整行(实际上是两行,因为它在那里发生了两次),因为无论如何它都是注释。
答案 3 :(得分:0)
它的权限错误, 刚跑:
renderd -f -c /usr/local/etc/renderd.conf
答案 4 :(得分:0)
当我将图块尺寸提高到2048x2048时,这发生在我身上。 1024x1024很好。我使用this guide(只是为了确保)将交换分区的大小从4G增加到50G,到目前为止没有任何问题。
为了进行比较:我在具有20G RAM,6个p核,12个v核的VM上运行切片服务器,并启动了24个渲染线程,Ubuntu 18.04 LTS。