燃烧的梦想
 燃烧的梦想,流水的时光 

2006-03-24 Fri

Mapserver/Ka-map在桌面Linux下的实验环境搭建笔记 2

长城小站是由志愿者支持的公益性网站,无固定经济来源。2012年小站台历是由各方网友赞助图片、设计、印刷精心制作的纪念品,用于小站运营经费筹款。
欢迎您购买小站台历,支持长城小站与小站博客的发展。
5.安装Mapserver编译环境

  上文说到,如果本地的php版本和mapserver编译时所用的php版本不一致,php_mapscipt.so文件不能被动态加载,导致ka-map不能被正常使用。再考虑到一些可能的实验,如编译最新的mapserver4.8等,搭建一个mapserv的编译环境是很必要的。

  经过测试,Mapserver的编译环境依赖关系如下:

Mapserver的编译依赖关系

  其中php-devel需要的依赖关系已经在前面表述过了,剩下几个devel所依赖的包前面已经安装完毕,不再细述。

1、在http://mappinghacks.com/rpm/fedora/2/ 上,下载:
gdal-devel-1.2.5-mh1.i686.rpm
geos-devel-2.1.1-mh1.i686.rpm
proj-devel-4.4.9-mh1.i686.rpm

2、在http://rpm.phone.net 上搜索For FC2的ming,ming-devel, pdflib,pdflib-devel,php-devel

3、安装
命令如下:
rpm -ivh gdal-devel-1.2.5-mh1.i686.rpm geos-devel-2.1.1-mh1.i686.rpm ming-0.2a-2.1.fc2.rf.i386.rpm ming-devel-0.2a-2.1.fc2.rf.i386.rpm pdflib-6.0.1-1.1.fc2.rf.i386.rpm pdflib-devel-6.0.1-1.1.fc2.rf.i386.rpm php-devel-4.3.4-11.i386.rpm proj-devel-4.4.9-mh1.i686.rpm

好,现在mapserver的配置环境告捷!

编译参考:
1、编译src.rpm,以mapserver-4.6.0beta3-mh1.src.rpm为例。
  mappinghacks.com上FC2的目录下只提供了mapserver4.2.1的rpm包,看来已经停止继续提供新的包的支持了,这样如果需要mapserver-4.6的rpm包的话,只能自己来尝试制作。
  由于FC3和FC2结构差别不大,所以我们尝试由mappinghacks.com提供的FC3的mapserver-4.6.0beta3-mh1.src.rpm在CoCreateLinux上来进行rebuild尝试。
  命令如下:
rpm -ivh mapserver-4.6.0beta3-mh1.src.rpm
cd /usr/src/redhat/SPECS/
rpmbuild -ba --target=i686 ./mapserver.spec
  结果:编译成功,生成的mapserver和php_mapscript.so均能正常工作。

2、编译源码包
  在http://mapserver.gis.umn.edu/ 上下载mapserver-4.8.1.tar.gz以及4.6.2,4.4.1的源码包,均编译成功。
  命令如下;
  展开mapserver-4.8.1.tar.gz
tar xvzf mapserver-4.8.1.tar.gz
cd mapserver-4.8.1
./configure --with-proj --with-php=/usr/include/php
make

  configure的参数有很多,我这里列举了最基本的最必须的两个,前者关于投影,后者生成php_mapscript.so,其他的就根据自己各取所需了,如--with-pdf --with-ming等。



6.Map文件编辑工具

能够支持编辑或生成Map文件的工具有Maplab和QGIS等。

一. Maplab的安装
  Maplab是基于web的Map文件编辑工具和脚本调试工具,包括MapEdit,MapBrowser和GMapFactory三个组件。

MapEdit界面

A.安装要求:
  Maplab要求mapserver和php-mapscript的编译参数是 --with-gd --enable-force-freetype1 --with-php --with-proj –with-wmsclients –with-gdal
  在本文的环境里就是: --with-gd --enable-force-freetype1 --with-php=/usr/include/php/ --with-proj –with-wmsclients –with-gdal


B.安装过程:

1)php_dbase支持
  maplab需要php_dbase支持。在http://phprpms.sourceforge.net/dbase 上可下载php_dbase支持库。
  由于FC2上php版本比较老(4.3.4),而php_dbase上提供的包已经对应php版本到4.3.10。重编php比较麻烦,所以还是去找找以前的版本。
  我下的是EL3上的php-dbase-4.3.2-26.ent.1.i386.rpm,经过实验没有问题。
rpm -ivh php-dbase-4.3.2-26.ent.1.i386.rpm

2)http简要配置
maplab中很多php脚本的文件后缀是phtml,需要在httpd的配置文件中指定一下。
在/etc/httpd/conf下编辑httpd.conf文件,方法是:
cd /etc/httpd/conf
cp httpd.conf httpd.conf.default
vi httpd.conf或者gedit httpd.conf
加入AddType application/x-httpd-php .phtml 一行;
service httpd restart

3)安装
下载最新的maplab-2.2.1.tar.gz
tar xvzf maplab-2.2.1.tar.gz
cp maplab-2.2.1 /var/www/html/. -rf
cd /var/www/html/
mv maplab-2.2.1/ maplab
cd maplab
chmod 777 config data ptoject
cd config/
chmod 666 *
cd ..

在浏览器里访问http://localhost/maplab/htdocs/
此时能访问到maplab的首页。

Maplab的首页界面

点击左上排第5个图标按钮(提示信息是“Open XML configuration tool”),打开每个配置页查看一下,然后点击“apply”确定。
Maplab安装结束。

二、 QGIS的安装
  QGIS是一款轻量级的GIS数据查看编辑软件,目前还在发展中,由于它支持map文件输出,所以我们先介绍一下它。

A.rpm包安装:
  在http://mappinghacks.com/rpm/fedora/2/ 提供了qgis-0.5.0-0.i386.rpm
这个包在前述的环境下(qgis0.5依赖GDAL和Postgresql-devel),可以直接安装。
rpm -ivh qgis-0.5.0-0.i386.rpm
  安装结束后在命令行运行qgis,即可启动图形界面的QGIS。
  为方便使用,我们在CoCreateLinux桌面上创建一个快捷方式。在桌面空白处点击鼠标右键,弹出菜单中选择第二项“创建启动器”,在弹出的窗口的名称和命令中分别填入QGIS和qgis,并选择一个图标(qgis的默认图标位于/usr/share/qgis/images/icons/qgis-icon2.png),点击确定即可。

B.编译环境
1、编译0.6
  mappinghacks提供的FC2的qgis版本比较老,只支持了shp,尚不支持mapinfo的格式,而6.0以后则开始提供支持。所以我们试图构建qgis的编译环境以获取新的版本进行安装。
  保守的做法,我们试着从该网上提供的FC3的qgis-0.6.0-mh2.src.rpm着手。
  先安装,rpm -ivh qgis-0.6.0-mh2.src.rpm
  这里我们可以再简单深入一步学习:编译rpm的条件有时会在这个源码rpm包中提供的一个SPEC文件有描述。我们可以通过查看该文件来了解qgis0.6的依赖环境。
cd /usr/src/redhat/SPEC
cat qgis-06-grass.spec
  在终端里按住shift+pageup可以往前察看显示的内容,你可以看到这样的两行:
Requires: gdal postgresql-postgis qt
BuildRequires: gdal-devel postgresql-devel qt-devel
  这个就是告诉我们rpm包安转和源码编译依赖的环境
  这里的qt编译支持环境在开发包里已经提供,但少了这个包,需要下载安装一下。
http://download.fedora.redhat.com/p....3.2-2.i386.rpm
  剩下的我们还有 postgresql-postgis,这个需要在安装时使用。
  关于 postgresql-postgis的安装,我们放到后面数据库一节讨论。目前我们已经具备编译条件。
rpmbuild -ba --target=i686 ./qgis-06-grass.spec
  编译结束后生成的包位于/usr/src/redhat/RPMS/i686/下。
  因为是C++编写的程序,Qgis的编译时间会长一些,约40分钟。

2、编译0.7.4
  我们进一步实验最新的版本0.7.4,该版本增加了对sqlite和proj的一来要求

1)下载sqlite和sqlite-devel,地址是:
ftp://ftp.pbone.net/mirror/atrpms.n...fc2.at.i386.rpm
ftp://ftp.pbone.net/mirror/atrpms.n...fc2.at.i386.rpm

2)下载最新的源码包
目前最新是0.7.4的版本
tar xvzf qgis-0.7.4.tar.gz
cd qgis-0.7.4

3)编译与安装
./configure
make
make install

4)制作rpm包
  可以编译制作它的RPM包,这样通过安装rpm包来安装,可以便于以后的程序管理,如卸载升级等。可以基于0.6的SPEC文件进行修改后供0.7.4制作rpm包,这个过程比较复杂,如果你对Linux很熟悉,可以尝试一下,这里不作详细描述。

  0.7.4版本的qgis支持本地的locale设置,可以很好地显示中文图层。我们期待它的进一步完美。

qgis 0.7.4











火箭人于 2006-03-24 14:48:28 发表在分类:OpenDesktopGis
(54975次点击) | 标签:  



 评论 · 发表新帖
 留言总数0帖 页次:1/0 每页:20条 

Power by 小站博客, Ver0.7 update at 2006-03-04