Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如果我是一个普通用户,我会收到一个错误,说套接字绑定失败:/var/run/renderd/renderd.sock,否则一切正常吗?_Linux_Apache_Maps_Openstreetmap_Mapnik - Fatal编程技术网

Linux 如果我是一个普通用户,我会收到一个错误,说套接字绑定失败:/var/run/renderd/renderd.sock,否则一切正常吗?

Linux 如果我是一个普通用户,我会收到一个错误,说套接字绑定失败:/var/run/renderd/renderd.sock,否则一切正常吗?,linux,apache,maps,openstreetmap,mapnik,Linux,Apache,Maps,Openstreetmap,Mapnik,我正试图按照switch2osm.org上的说明手动构建地图服务器。我已经配置好了一切。我有一个由用户mayank拥有的数据库mayank,我正在尝试使用renderd,但我得到了以下错误:套接字绑定失败:/var/run/renderd/renderd.sock。现在,如果我切换到root并执行相同的操作,它将完全不会出现直接的权限问题,因为我递归地更改了目录的所有者。但可能存在一些中间权限问题。我不能以root用户身份运行它,因为我使用的是psql,而数据库mayank的所有者是我的用户ma

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

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

您的
renderd.conf
文件中似乎有语法错误。只需删除
renderd.conf
at
;[Render02]


尾随的分号表示注释。所以,除非你把它注释掉,否则前面不应该有分号。

我遇到了与你几乎相同的问题。据我看来,这背后可能有两个原因。再次尝试使用

sudo -u 'username' renderd -f -c /usr/local/etc/renderd.conf
应用建议的解决方案之一后。用“用户名”替换运行renderd的用户名称:

原因#1缺少书写权限 您可能没有写入/var/run/renderd/renderd.sock文件的权限

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

sudo chown 'username' /var/run/renderd
和/或通过键入更改文件的所有者

sudo chown 'username' /var/run/renderd/renderd.sock
,其中“username”表示将运行renderd的用户

原因#2缺少目录 我收到的错误消息与您的几乎相同

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

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

,其中“username”是用户,它将运行nng renderd

我在这里找到的所有提示都是正确的。但我还需要在/usr/local/etc/renderd.conf中替换以下内容:

为此:

;xxx=** config options used by mod_tile, but not renderd **
看起来分号被视为注释,但它后面的字符串仍然需要应用于
key=value
formula,否则您将得到“

iniparser:/usr/local/etc/renderd.conf中的语法错误

或者您也可以删除整行内容(实际上是两行,因为它在那里出现了两次),因为它是一条注释。

这是权限错误, 只需运行:

renderd -f -c /usr/local/etc/renderd.conf

当我将磁贴尺寸增加到2048x2048时,我遇到了这种情况。1024x1024进行得很好。我使用(只是为了确保)将交换分区的大小从4G增加到50G,到目前为止没有任何问题

作为比较:我在一个虚拟机上运行tile服务器,它有20G内存、6个p核、12个v核,并启动了24个渲染线程,Ubuntu 18.04 LTS

renderd -f -c /usr/local/etc/renderd.conf