User Tools

Site Tools


tecnica:gps_cartografia_gis:mapserver_fgs

Installazione MapServer con FGS Linux Installer

Nel caso si debba installare MapServer su una distribuzione Linux difficile si può provare il pacchetto FGS Linux Installer. Si tratta in pratica di un blob di software che va ad installarsi in /opt/fgs/ e che fornisce in maniera praticamente autonoma una suite completa di software (elenco relativo a fgs versione 9.5):

  • mapserver-php:5.4.0
  • mapserver-base:5.4.0
  • apache-base:2.2.11
  • proj-lib:4.6.1
  • postgresql-lib:8.3.7
  • gdal-base:1.6.0
  • proj4_epsg42xxx-support:4.6.1
  • geos-lib:3.1.0
  • php-base:5.2.9
  • python_mapscript-module:5.4.0
  • python-base:2.6.2
  • gdal_ecw-module:1.6.0
  • libecw-base:3.3.20060906
  • postgis-lib:1.3.5

In questo modo è possibile installare versioni recenti del software (MapServer 5.4, GDAL 1.6, PostGIS 1.3.5) anche su distribuzioni obsolete e orribili come CentOS 4.5. Purtroppo il pacchetto è disponibile solo per architettura i386.

Installazione

Si scarica il pacchetto fgs-mapserver_extended, lo si rende eseguibile e lo si esegue.

L'installazione conviene farla come utente non privilegiato, altrimenti la configurazione di PostgreSQL fallisce (non può eseguire initdb come root). Inoltre l'utente che esegue l'installazione sarà l'amministratore di PostgreSQL e il proprietario dei processi in esecuzione.

Supponiamo di creare un utente ad-hoc di nome fgs, se vogliamo installare tutto il software nella directory /opt/fgs/, bisogna che la directory /opt sia scrivibile dall'utente durante l'installazione.

Per evitare conflitti con il software già installato è necessario utilizzare porte non standard per alcuni servizi (Apache, PostgreSQL).

*      *** Apache installation ***
* Selecting TCP port... Example: 80, 8080, 8000
? What TCP port do you want to use [80] : 8080
+ Port selected : '8080'
* You can start apache with : fgs start apache

Per utilizzare il software installato sotto /opt/fgs/ e per avviare i servizi si deve eseguire:

. /opt/fgs/setenv.sh
fgs start apache
fgs start pgsql

Dopo aver eseguito setenv.sh è possibile utilizzare anche i tool da riga di comando come ogrinfo ecc. Si consiglia di aggiungere il setenv.sh al profilo utente:

echo ". /opt/fgs/setenv.sh" >> ~/.bashrc

Per avviare tutti i servizi al boot di sistema si modifica rc.local aggiungendo:

su fgs -c "( . /opt/fgs/setenv.sh ; fgs start )"

FIXME Sarebbe opportuno esegure fgs stop allo shutdown.

Disabilitare un servizio installato

Per disabilitare un servizio senza disinstallarlo - ad esempio per disabilitare l'avvio automatico di PostgreSQL - si può intervenire direttamente sullo script di avvio /opt/fgs/etc/init.d/pgsql, aggiungendo un comando exit al suo inizio.

Installazione moduli aggiuntivi

Il pacchetto FGS comprende numerosi moduli aggiuntivi non installati dal pacchetto principale. L'elenco è visibile direttamente nella directory di download (specifica per la versoine del pacchetto principale).

Come esempio vogliamo installare il plugin Client Oracle (OCI) della libreria GDAL. Dobbiamo specificare il numero di versione, altrimenti rischiamo di installare il plugin per Oracle 11 invece che per la versione 10:

fgs install gdal-base-1.6.1-oci:10.2.0.4-1 http://dl.maptools.org/dl/fgs/releases/9.5/modules

Modulo Apache

La configurazione FGS si trova in /opt/fgs/etc/fgs/pkgs/apache-base/apache.conf:

PORT=8080
USER='apache'
GROUP='apache'

I parametri USER e GROUP vengono impostati solo se fgs start viene eseguito da root, in tal caso apache gira con il suo utente. Altrimenti gira a nome dell'utente fgs.

Il file di configurazione usato è /opt/fgs/www/conf/live.httpd.conf (viene sovrascritto ad ogni avvio di Apache), questi i parametri importanti:

ServerRoot "/work/fgs/www"
Listen 8080
User apache
Group apache
DocumentRoot "/work/fgs/www/htdocs"
ErrorLog "logs/error_log"
CustomLog "logs/access_log" common

La configurazione del PHP è in /opt/fgs/www/conf/php5.ini ma viene sovrascritta ad ogni avvio di Apache con il contenuto di /opt/fgs/www/conf/php5.ini.template.

Le estensioni PHP non vengono caricate automaticamente (come in Debian), ma vanno aggiunte a mano:

extension=curl.so
extension=php_mapscript.so

Ad esempio l'estensione curl è necessaria per chiamare fopen($url), altrimenti si ottiene l'errore:

Notice: fopen() [function.fopen]: Unable to find the wrapper "http"
    - did you forget to enable it when you configured PHP? in /var/www/fopen_test.php on line 54
Warning: fopen(http://host/) [function.fopen]: failed to open stream:
    No such file or directory in /var/www/fopen_test.php on line 54
tecnica/gps_cartografia_gis/mapserver_fgs.txt · Last modified: 2009/10/20 09:28 by niccolo