Table of Contents
MapServer su Fedora Core
Guida di riferimento: http://www.fedorafaq.org/, scaricati i quattro CD di Fedora Core 6, in pratica sono stati utilizzati solo i primi due, il resto è stato installato via rete.
Installazione
Scelta installazione personalizzata del software, tolti diversi pacchetti, installato httpd e postgres. All'esecuzione di firstboot si è scelto di disattivare alcuni servizi (in considerazione anche del fatto che si tratta di una macchina virtuale su VMware):
- autofs
- avahi-daemon
- bluetooth
- cpuspeed
- cups
- hidd
- ip6tables
- iptables
- isdn
- mdmonitor
- netfs
- nfslock
- pcsd
- portmap
- rpcgssd
- rpcidmapd
- smartd
Si sono invece attivati i servizi
- postgresql
- httpd
Se si desidera rieseguire il tool di prima configurazione (firstboot) si deve eliminare il file /etc/sysconfig/firstboot
e lanciare /etc/init.d/firstboot
. Oppure si crea un file /.unconfigured
e
si esegue un reboot.
Gestione dei pacchetti
Per la gestione dei pacchetti è stato usato yum
, in /etc/yum.repos.d/
sono elencati i repository disponibili, i file salvati sono in /var/cache/yum/
. I comandi più utili sono:
yum list installed yum list available yum install packagename yum update packagename yum check-update yum search word yum clean all yum clean metadata yum clean dbcache
E' capitato anche che yum avesse smesso di funzionare correttamente, risolto con un reboot. Si puo' anche installare un file .rpm direttamente con:
yum localinstall package.rpm # Oppure con rpm -vv -i package.rpm
Per sfogliare il repository di RPM via web:
Selezione pacchetti
Dopo un aggiornamento completo del sistem con yum update
, per la compilazione e l'installazione di MapServer si sono aggiunti i seguenti pacchetti (con yum install pacchetto
):
- gcc
- gcc-c++
- postgresql-devel
- postgresql-pl
- php-gd
- php-pear
- php-pgsql
- php-mbstring
- php-xml
- php-xmlrpc
- screen
- flex
- python-devel
- php-devel
- freetype-devel
- libpng-devel
- libjpeg-devel
- libXpm-devel
- gd-devel
- curl-devel
Per comodità si sono installati anche:
- mc
- screen
- strace
- lynx
Configurazioni particolari
Per tracciare gli errori di PHP si è provissoriamente abilitata la visualizzazione degli errori mettendo display_errors = On
in /etc/php.ini
. In produzione tuttavia questa impostazione va messa su Off in quanto alcuni warning generati da pmapper producono immagini corrotte e in pratica il pmapper non funziona (il warning viene visualizzato dentro i file .png generati al volo).
Disabilitato selinux in /etc/sysconfig/selinux
, altrimenti il processo apache non è autorizzato ad aprire socket TCP/IP. Questo significa che MapServer non poteva fare da client WMS, che il collegamento a PostGIS non funziona, phpPgAdmin funzionava solo su Unix socket (accidenti a Fedora, Dio bonino!).
Compilazione del software aggiuntivo
Lo script che segue è il dettaglio di tutte le operazioni eseguite per scaricare, compilare e installare il necessario
# Attivare le librerie in /usr/local/lib #------------------------------------------------------------------- echo /usr/local/lib > /etc/ld.so.conf.d/local.conf # PROJ 4.5.0 http://www.remotesensing.org/proj #------------------------------------------------------------------- mkdir /usr/local/src/proj cd /usr/local/src/proj wget ftp://ftp.remotesensing.org/proj/proj-4.5.0.tar.gz tar zxvf proj-4.5.0.tar.gz chown -R root.root proj-4.5.0 find proj-4.5.0 -type d | xargs chmod 755 cd proj-4.5.0 ./configure make make install ldconfig # GEOS http://geos.refractions.net #------------------------------------------------------------------- mkdir /usr/local/src/geos cd /usr/local/src/geos wget http://geos.refractions.net/geos-2.2.3.tar.bz2 tar jxvf geos-2.2.3.tar.bz2 chown -R root.root geos-2.2.3 find geos-2.2.3 -type d | xargs chmod 755 cd geos-2.2.3 ./configure make make install ldconfig # POSTGIS 1.2.0 http://www.postgis.org #------------------------------------------------------------------- mkdir /usr/local/src/postgis cd /usr/local/src/postgis wget http://www.postgis.org/download/postgis-1.2.0.tar.gz tar zxvf postgis-1.2.0.tar.gz chown -R root.root postgis-1.2.0 cd postgis-1.2.0 ./configure make make install ldconfig # # Il "make check" ha qualche problema, provare invece a # creare un geo-database di nome "prova" con: # # su - postgres # createdb prova # createlang plpgsql prova # psql -f /usr/share/lwpostgis.sql -d prova # psql -f /usr/share/spatial_ref_sys.sql -d prova # GDAL 1.3.2 http://www.remotesensing.org/gdal/ #------------------------------------------------------------------- mkdir /usr/local/src/gdal cd /usr/local/src/gdal wget http://www.gdal.org/dl/gdal-1.3.2.tar.gz tar zxvf gdal-1.3.2.tar.gz chown -R root.root gdal-1.3.2 cd gdal-1.3.2 ./configure make make install ldconfig # MapServer 4.10.0 http://mapserver.gis.umn.edu/ #------------------------------------------------------------------- mkdir /usr/local/src/mapserver cd /usr/local/src/mapserver wget http://cvs.gis.umn.edu/dist/mapserver-4.10.0.tar.gz tar zxvf mapserver-4.10.0.tar.gz chown -R root.root mapserver-4.10.0 cd mapserver-4.10.0 ./configure --with-wfs --with-wcs --with-wmsclient --with-wfsclient \ --with-proj --with-ogr --with-gdal --with-postgis --with-php=/usr/include/php make install -s mapserv /var/www/cgi-bin install -s mapscript/php3/php_mapscript.so /usr/lib/php/modules ln -s php_mapscript.so /usr/lib/php/modules/php_mapscript_4.10.0.so install -s legend /usr/local/bin install -s scalebar /usr/local/bin install -s shp2img /usr/local/bin install -s shptree /usr/local/bin install -s shptreetst /usr/local/bin install -s shptreevis /usr/local/bin install -s sortshp /usr/local/bin install -s tile4ms /usr/local/bin install -m 0644 mapscript/php3/examples/phpinfo_mapscript.phtml /var/www/html # # Mettere un file /var/www/html/hello-world.map e provare: # http://geoserver/phpinfo_mapscript.phtml # http://geoserver/cgi-bin/mapserv?map=/var/www/html/hello-world.map&mode=map # p.mapper 2.1.2 http://sourceforge.net/projects/pmapper #------------------------------------------------------------------- mkdir /usr/local/src/pmapper cd /usr/local/src/pmapper wget http://puzzle.dl.sourceforge.net/sourceforge/pmapper/pmapper-2.1.2.zip wget http://switch.dl.sourceforge.net/sourceforge/pmapper/pmapper-demodata-2.zip cd /var/www/html unzip /usr/local/src/pmapper/pmapper-2.1.2.zip mv pmapper-2.1.2 pmapper chown -R apache.apache pmapper mkdir /var/www/html/tmp chmod 1777 /var/www/html/tmp echo "AddHandler php5-script .phtml" > /etc/httpd/conf.d/pmapper.conf echo "AddType text/html .phtml" >> /etc/httpd/conf.d/pmapper.conf /etc/init.d/httpd reload mkdir /var/www/demodata cd /var/www/demodata unzip /usr/local/src/pmapper/pmapper-demodata-2.zip # # Modificare pmapper/config/default/pmapper_demo.map: # IMAGEPATH "/var/www/html/tmp/" # phpPgAdmin 4.0.1 http://www.phppgadmin.org/ #------------------------------------------------------------------- mkdir /usr/local/src/phppgadmin cd /usr/local/src/phppgadmin wget http://ftp.icdevgroup.org/phpPgAdmin/phpPgAdmin-4.0.1-1.noarch.rpm rpm -i phpPgAdmin-4.0.1-1.noarch.rpm