在ubuntu14.04上部署WMS服务器

一.软件安装与配置

整个服务器的结构为:

(1)      apache Web服务器处理用户的页面请求,包括一些局部渲染;

(2)      mod_tile为apache的一个模块,用来缓存切片并决定哪一部分需要重新被渲染

(3)      Renderd 为渲染请求提供一个优先队列系统来管理并润化显示的效果

(4)      mapnik在背后渲染所需的图片,被rendered调用

(5)   postgis数据库作为数据来源,其数据使用osm2sql工具来导入openstreetmap官网下载的数据,具体见《一步步DIY:
OSM-Web
服务器() PostgreSql
配置以及osm2pgsql原始PBF数据导入

所以需要分别安装这三款软件:

(1)      apache服务器的安装参考了《一步步DIY: OSM-Web服务器()
mapnik
apache2mod_tile
的配置
》的第9部分,操作与之类似。

(2)      mapnik需要最新的boost库,可以通过以下方式来完成安装:

sudoapt-get install python-software-properties

sudoadd-apt-repository ppa:mapnik/boost

sudoapt-get update

sudoapt-get install libboost-dev libboost-filesystem-devlibboost-program-options-dev libboost-python-dev libboost-regex-devlibboost-system-dev libboost-thread-dev

其它的依赖库可以通过以下方式来安装:

sudoapt-get install libltdl-dev libltdl7 libpng12-dev libtiff4-dev  

sudoapt-get install libicu-dev python-cairo-dev python-nose libfreetype6-devlibfreetype6 

sudoapt-get install libcairo2-dev libcairomm-1.0-dev libgeotiff-dev 

sudoapt-get install  libsigx-2.0-2libsigx-2.0-dev

sudoapt-get install libgdal1-dev  python-gdalimagemagick  ttf-dejavu ttf-unifont

下面安装mapnik,先从服务器下载并解压

cd~/src 

gitclone https://github.com/mapnik/mapnik.git 

cdmapnik

然后使用利用python完成安装,验证方法网上很多,Python中import mapnik

pythonscons/scons.py configure INPUT_PLUGINS=all OPTIMIZATION=3SYSTEM_FONTS=/usr/share/fonts/truetype/ 

pythonscons/scons.py 

sudopython scons/scons.py install

sudoldconfig

(3)      下面安装OpenStreetMap Mapnik
工具,这里面包含了一些可以用于帮助案显示OpenStreetMap数据的默认样式文件以及工具。其中第4步需要下载大概400MB的内容。

1.cd ~/bin 

2.svn co http://svn.openstreetmap.org/applications/rendering/mapnik mapnik-style

3.cd ~/bin/mapnik-style 

4.sudo ./get-coastlines.sh /usr/local/share

5. ./generate_xml.py

–world_boundaries=/usr/local/share/world_boundaries(上一步生成)

–host=127.0.0.1(postgis所在主机ip地址)

–port=5432(postgis端口号)

–user=mfl345(postgis数据库的用户名)

–password=mfl345909(postgis数据库的密码)

–dbname=osmgis(postgis数据库)

如果第5步生成文件失败,则需要配置一下其中的各个文件,将其中的默认值修改为自己的数据库相关属性,需要修改三个文件,首先使用默认配置值填充:

cdinc

cpfontset-settings.xml.inc.template fontset-settings.xml.inc

cpdatasource-settings.xml.inc.template datasource-settings.xml.inc

cpsettings.xml.inc.template settings.xml.inc

然后分别修改,对于settings.xml.inc,

1.用<!ENTITY symbols”symbols”>

代替<!ENTITY symbols “%(symbols)s”>

2.用<!ENTITYosm2pgsql_projection “&srs900913;”>

代替<!ENTITY osm2pgsql_projection “&srs%(epsg)s;”>

3.用<!ENTITY dwithin_node_way “&dwithin_900913;”>

代替<!ENTITY dwithin_node_way “&dwithin_%(epsg)s;”>

4.用<!ENTITYworld_boundaries “/usr/local/share/world_boundaries”>

     (引号内部为world_boundaries的路径)

代替<!ENTITY world_boundaries “%(world_boundaries)s”>

5. 用<!ENTITY prefix “planet_osm”>

代替<!ENTITY prefix “%(prefix)s”>

对于datasource-settings.xml.inc, 

<Parametername=”dbname”>gis</Parameter>     //数据库名

<Parametername=”estimate_extent”>false</Parameter>  //false

<Parametername=”extent”>-20037508,-19929239,20037508,19929239</Parameter>

fontset-settings.xml.inc最好不要修改。

当前mapnik-style是为0.7调配的,需要转换到3.x格式。转换比较简单,首先,安装库

cd ~/bin/mapnik-style

sudoapt-get install libxml2 libxml2-dev python-lxml

而后,直接升级

upgrade_map_xml.py osm.xml  osm-mapnik3.xml

如果没有产生文件,可能是前一步没有把数据库连接配置好。

       测试方法参考前文。

(4)      配置rendered,先创建文件夹并赋予权限

sudomkdir /var/run/renderd 

sudochown mfl345 /var/run/renderd 

                                     然后修改配置文件

sudogedit /usr/local/etc/renderd.conf

为:

socketname=/var/run/renderd/renderd.sock

plugins_dir=/usr/local/lib/mapnik/input

font_dir=/usr/share/fonts/truetype/ttf-dejavu

XML=/home/username/src/mapnik-style/osm-mapnik3.xml((3)中生成)

HOST=localhost

(5)      安装并配置mod_tile,首先下载

然后安装

cdmod_tile 

./autogen.sh 

./configure 

make 

sudomake install 

sudomake install-mod_tile 

sudoldconfig

在执行make命令的时候会出现错误,提示好多类型都未定义,这时候就需要修改其中的一些文件了,具体修改内容参考《mod_tile文件变更》。之后创建文件夹放置瓦片并赋予权限

sudomkdir /var/lib/mod_tile 

sudochown  mfl345 /var/lib/mod_tile

(6)      配置apache,让apache2 在启动时装载 mod_tile,需要修改

sudogedit /etc/apache2/httpd.conf

在文件末尾添加:

ServerName(填IP地址或者localhost)

LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so

而后,设置用户访问网页的入口点  ,打开文件

sudo gedit/etc/apache2/sites-available/000-default.conf

然后在ServAdmin所在行的下面添加:

LoadTileConfigFile/usr/local/etc/renderd.conf

ModTileRenderdSocketName/var/run/renderd/renderd.sock

#Timeout before giving up for a tile to be rendered

ModTileRequestTimeout0

#Timeout before giving up for a tile to be rendered that is otherwise missing

ModTileMissingRequestTimeout30

最后按照参考博客的说明测试render。

二.需要注意的问题

         1. mapnik_style安装后在./generate_xml.py生成配置文件的时候,如果最后生成不成功,可以参照之后的说明直接修改相应的文件

         2.其中采用本文方式从网上下载mod_tile报中文件内容有部分内容需要改变。

转载自:https://blog.csdn.net/txww1/article/details/40222433

You may also like...