====== Installazione MapServer con FGS Linux Installer ======
Nel caso si debba installare MapServer su una distribuzione Linux //difficile// si può provare il pacchetto **[[http://maptools.org/fgs/|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 [[http://dl.maptools.org/dl/fgs/releases/9.5/modules/|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