Table of Contents
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 )"
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