====== 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: * **[[http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/Fedora/RPMS/]]** * **[[http://download.fedora.redhat.com/pub/fedora/linux/core/updates/6/i386/]]** ===== 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