Installare Mapserver con php-mapscript su Debian
Da Wikipedia, l'enciclopedia libera.
Percorso: Home page / Software Web GIS / Installare Mapserver con php-mapscript su Debian
Contents |
PHP
Prerequisiti
PostgreSQL deve essere installato con PostGIS support. Sono necessari alcuni pacchetti:
apt-get install libgd2 proj
poi
vi /etc/apt/sources.list
add:
deb-src http://http.us.debian.org/debian sarge main contrib non-free
apt-get update
apt-get source php4
Iniziamo a compilare php come cgi, senza installarlo. Vai nella directory in cui hai scompattato php (quella dove hai lanciato apt-get, probabilmente /root/php4-4.3.10)
cd php4-4.3.10/
e dai il comando seguente:
./configure --with-regex=system --with-gd --with-pgsql=/usr/ --enable-ftp --enable-force-cgi-redirect --with-ttf --with-jpeg --with-png --enable-gd-native-ttf --enable-dbase --with-dba --with-zlib --with-freetype --enable-cli
Se la compilazione si ferma con errori del tipo:
configure: error: libpng.(a|so) not found.
va installato il pacchetto dev corrispondente (in questo caso libpng12-dev); servono anche: postgresql-dev, libgd2-dev, libgdal1-dev Infine:
make
Mapserver
Download mapserver
wget http://cvs.gis.umn.edu/dist/mapserver-4.4.1.tar.gz /root/
NB: sostituire a 4.4.1 il numero della versione corrente spostati nella directory dove l'hai scaricato e scompattalo
cd /root
tar -xvvzf mapserver-4.4.1.tar.gz
e configura
make clean
./configure --with-gd --with-jpeg --with-png --with-php=/root/php4-4.3.10/ --with-tiff --with-freetype --with-postgis --with-proj --with-ogr --with-gdal
per dettagli sulla configurazione, digita
./configure --help
NB: bisogna sostituire a --with-php=../php-4.3.10 il path dove si trova il php compilato al punto 2; poi:
make
cp mapserv /usr/lib/cgi-bin/
Installare il modulo php_mapscript.so
Serve, ad es., per MapLab
cp ./mapscript/php3/php_mapscript.so /usr/lib/php4/path_corretto
NB: il path_corretto (la directory che contiene le estensioni di php) si trova creando in /var/www un file test.php che contiene:
< ?php
dl("php_mapscript.so");
phpinfo();
?>
e puntandoci il browser (NB: fra "<" e "?php" non ci deve essere spazio). Una volta che hai copiato il modulo sei ingrado di caricarlo, per� mapscript deve essere usato con php compilato come cgi. Probabilmente sulla tua macchina avrai anche il mod_php per apache che ti fa associare i file con estensione php all'interprete PHP. Sappi quindi che a questo punto per scriptare in mapscript devi cambiare l'estensione dei tuoi script, in phtml ad esempio. Poi configuri apache per far eseguire tutti i file con estensione phtml con l'interprete CGI php, mentre quelli con estensione php vengono passati a mod_php.
vi /etc/apache/httpd.conf
oppure
vi /etc/apache-ssl/httpd.conf
le linee
AddHandler phtml-script .phtml Action phtml-script /cgi-bin/php
poi:
/etc/init.d/apache restart
oppure
/etc/init.d/apache-ssl restart
Così facendo dici ad apache di gestire un nuovo tipo di file che ha estensione .phtml, e che quando si richiede un file di quel tipo il contenuto viene interpretato da /cgi-bin/php.
Test
Per verificare se è stato installato in modo corretto, puntare un browser a:
http://servername/cgi-bin/mapserv
dove servername è il nome del server su cui è stato installato mapserver (ad es. localhost); se tutto va bene, dovrebbe apparire:
No query information to decode. QUERY_STRING is set, but empty.
Quindi scaricare il demo: http://maps.dnr.state.mn.us/mapserver_demos/workshop.zip ed editare il file index.html inserendo il percorso dove si trovano i vostri files (ad es. /var/www/website/workshop/itasca.map)
Note
In caso di spostamento dei layers, il path va cambiato sia nell'html (o php) sia nel *.map. L'include del php non funziona all'interno delle pagine mapscript.
Tutorials & docs
Vecchio howto per l'installazione
http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?DebianLinux
Generale (raccolta di tutta la documentazione)
http://mapserver.gis.umn.edu/doc.html
Tutoral step by step
http://terrasip.gis.umn.edu/projects/tutorial/
Esempi
http://www.mobilegeographics.com/mapserver/

