Mapserver on Linux: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
 
Brian Wilson (talk | contribs)
mNo edit summary
Line 1: Line 1:
 
== Linux implementation at CDS ==
== Linux / CDS implementation ==


=== Installation ===
=== Installation ===
Line 11: Line 10:
=== Server ===
=== Server ===


I built a special Web server to run MapServer for two reasons.
I built PHP/Mapscript to run under Apache 2.0.54 on a system based on
First, I generally run MySQL not PostgreSQL due to the requirements of
[http://www.trustix.org/ Trustix Linux] 2.2. (This happens to be the system most readily available at the moment.) I have TSL 2.2 or 3.0 on all my servers.
other packages that I use. I might think PostgreSQL is better than MySQL
but the other packages don't support it.


Second, the current version of MapServer requires that PHP be run as a CGI instead of
For starters I am not going to build PostgreSQL support. Generally I run MySQL not PostgreSQL due to the requirements of other packages that I use. I will deal with PostgreSQL (and PostGIS) later.
as a loadable Apache module. For MapServer this is not a big deal but again some of
my other software packages won't work when used with the CGI version of PHP.


I use Trustix Secure Linux 2.1 on the map server. I find it to be easy to maintain and
For performance reasons I want to use PHP as a loadable module so I am
not bloated like recent versions of Redhat. The support from the Trustix team is excellent.
building PHP/Mapscript... here we go.


Relevant installed packages with TSL 2.1 include
Relevant installed packages with TSL 2.2 include


'''Apache 2.0.51''' -- installed from '''apache''' TSL package
'''Apache 2.0.54''' web server -- installed from '''apache''' TSL package


'''PostgreSQL 7.4.5''' -- installed from '''postgresql'''  
'''GD 2.0.33''' graphics library -- installed from '''gd''' and '''gd-devel''' TSL packages
and '''postgresql-devel''' TSL packages


'''GD 2.0.27''' Boutell's graphics library is not available through Trustix.
'''zlib''' conpression library -- '''zlib''' and '''zlib-devel''' packages
The Redhat version is outdated too -- you need GD version 2.
So I built it myself. I had to install the '''zlib-devel''' package to get it to compile on TSL.


'''PHP''' As mentioned above I have to build [http://www.php.net/ PHP] 4.3.9
'''PHP''' As mentioned above I have to build [http://www.php.net/ PHP] 4.4.0
as a CGI -- the TSL version is a module. Building PHP required installing these TSL packages: '''flex''',
Building requires the TSL packages: '''flex''', '''gcc''', '''make''', '''glibc-devel'''; generally these are required to build most anything.


The options I used for the PHP configure script are:
The options I used for the PHP configure script are:


<pre>
./configure \
./configure \
        --with-apxs2 \
         --with-pear \
         --with-pear \
         --with-regex=system \
         --with-gd --enable-gd-imgstrttf --with-freetype-dir=/usr \
        --with-png-dir=/usr \
        --with-xpm-dir=/usr/X11R6 \    ''this is probably not needed''
        --enable-gd-native-ttf \
         --with-zlib \
         --with-zlib \
         --with-gettext \
         --with-gettext \
         --with-xml \
         --with-xml \
         --with-pgsql
         --with-mysql  ''only if you want builtin mysql support''
</pre>
 
This is a bit minimal for me. Usually I build in a lot more features but
then again, normally I load PHP as a SAPI module so it does not matter if it's a bit
bulky. To run it as a CGI I want it to load as fast as possible so I leave nifty
extra features like internal support for JPEG's and PNG's turned off. Maybe I should
turn off XML support too...
 
Configuring Apache for CGI PHP
 
I could not find a good clear example of this -- apparently everyone uses SAPI PHP.


'''ADD APACHE MY CHANGES HERE!!!
'''ADD APACHE MY CHANGES HERE!!!

Revision as of 23:14, 14 September 2005

Linux implementation at CDS

Installation

The INSTALL file has this text in it: "Visit http://mapserver.gis.umn.edu/ for full documentation and installation instructions." It took me a good 30 minutes to find any useful documentation at the UMN site!

Look in their MapServerWiki. Here is a doc on MapServerCompilation

Server

I built PHP/Mapscript to run under Apache 2.0.54 on a system based on Trustix Linux 2.2. (This happens to be the system most readily available at the moment.) I have TSL 2.2 or 3.0 on all my servers.

For starters I am not going to build PostgreSQL support. Generally I run MySQL not PostgreSQL due to the requirements of other packages that I use. I will deal with PostgreSQL (and PostGIS) later.

For performance reasons I want to use PHP as a loadable module so I am building PHP/Mapscript... here we go.

Relevant installed packages with TSL 2.2 include

Apache 2.0.54 web server -- installed from apache TSL package

GD 2.0.33 graphics library -- installed from gd and gd-devel TSL packages

zlib conpression library -- zlib and zlib-devel packages

PHP As mentioned above I have to build PHP 4.4.0 Building requires the TSL packages: flex, gcc, make, glibc-devel; generally these are required to build most anything.

The options I used for the PHP configure script are:

./configure \
       --with-apxs2 \
       --with-pear \
       --with-gd --enable-gd-imgstrttf --with-freetype-dir=/usr \
       --with-png-dir=/usr \
       --with-xpm-dir=/usr/X11R6 \    this is probably not needed
       --enable-gd-native-ttf \
       --with-zlib \
       --with-gettext \
       --with-xml \
       --with-mysql   only if you want builtin mysql support

ADD APACHE MY CHANGES HERE!!! Projections - PROJ 4.4.8 installed from RPM for Redhat. Proj includes a library for performing respective forward and inverse transformation of cartographic data to or from cartesian data with a wide range of selectable projection functions.

Map file support -- Raster and Vector files

GDAL 1.2.3
GDAL is the "Geospatial Data Abstraction Library". GDAL is a translator library for raster geospatial data formats.

OGR The OGR library is a subcomponent of GDAL so you don't need to worry about it if you install GDAL. The OGR Simple Features Library allows MapServer users to display several types of vector data files in their native formats. For example, MapInfo Mid/Mif and TAB data do not need to be converted to ESRI shapefiles when using OGR support with MapServer.

I built the entire GDAL package with './configure; make; make install'

Building MapServer

MapServer wanted me to install Freetype but there is no TSL Freetype so I installed version 2.1.9 from source with the traditional './configure; make; make install',

The configuration I used for the actual MapServer build looks like this:

./configure \
  --prefix=/usr/local/mapserver \
  --with-httpd=/usr/sbin/httpd  \
  --with-gd=/usr/local  \
  --with-freetype       \
  --with-jpeg           \
  --with-proj           \
  --with-ogr=/usr/local/bin/gdal-config \
  --with-gdal=/usr/local/bin/gdal-config --with-wfs \
  --with-tiff \
  --with-php=../../Languages/php-4.3.9

I would like to add --with-postgis but I have not installed PostGIS yet.