linux - 如果我是普通用户,我会收到一条错误消息,提示 :/var/run/renderd/renderd. sock 套接字绑定(bind)失败,否则一切正常?

标签 linux apache maps openstreetmap mapnik

我正在尝试按照 switch2osm.org 上的说明手动构建 map 服务器。我已经配置了一切。我有一个由用户 mayank 拥有的数据库 mayank,我正在尝试使用 renderd,但我收到此错误套接字绑定(bind)失败:/var/run/renderd/renderd.sock。现在,如果我切换到 root 并执行相同的操作,它会完美运行,没有直接的权限问题,因为我已经递归地更改了目录的所有者。但可能存在一些中间许可问题。我不能以 root 身份运行它,因为我使用的是 psql,而我的数据库 mayank 所有者是我的用户 mayank,这导致没有渲染图 block 。而且我不想重新安装我的操作系统,但认真理解这个问题的原因。请帮助我是 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 身份运行的,但可能是因为数据库的原因,这个过程没有生成任何图 block

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

最佳答案

我遇到了与您几乎相同的问题。据我所知,这背后可能有两个原因。尝试再次运行

sudo -u 'username' renderd -f -c /usr/local/etc/renderd.conf

应用建议的解决方案之一后。将“用户名”替换为运行渲染的用户名:

原因 #1 缺少写入权限

您可能没有对 /var/run/renderd/renderd.sock 文件的写入权限。

您的解决方案是更改目录的所有者:

sudo chown 'username' /var/run/renderd

和/或通过键入更改文件的所有者

sudo chown 'username' /var/run/renderd/renderd.sock

,其中“用户名”代表将运行渲染的用户。

原因#2 缺少目录

我收到了与您几乎相同的错误消息。

在我的例子中,我丢失了 /var/run/renderd 目录。我的解决方案是创建 /var/run/renderd 目录,然后更改其所有者:

sudo mkdir /var/run/renderd
sudo chown 'username' /var/run/renderd

,其中'username'是用户,它将被运行渲染。

关于linux - 如果我是普通用户,我会收到一条错误消息,提示 :/var/run/renderd/renderd. sock 套接字绑定(bind)失败,否则一切正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16851034/

相关文章:

linux - 从 Linux 用户空间检测修改过的文件

apache - Jenkins/Apache 反向代理错误

javascript - 在自定义世界地图上创建我自己的地址、道路和路线

php - 从 HTML 网页中的 Google Maps iframe 获取坐标

java - flex ant 任务中的 flex 编译器错误(警告)消息

javascript - 在 Raspberry Pi Zero 上,puppeteer 在超时后挂起

linux - BeagleBone Black : Qt 5. 3 无法在 UDP 中发送数据报

apache - URL 重写 - 没有文件扩展名的重定向

apache - Laravel:带有尾部斜杠的 URL 的 Apache 别名

javascript - 将 jvectormap 的中心从 EU 更改为 ASIA