====== 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