Difference between revisions of "Installation von MapServer, Apache und PostgreSQL/PostGIS auf Debian 4.0"
Line 61: | Line 61: | ||
== Installation von PostgreSQL/PostGIS == | == Installation von PostgreSQL/PostGIS == | ||
− | |||
− | + | Zunächst brauchen Sie eine ganze Menge weitere Dateien. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Geben Sie ein: | Geben Sie ein: | ||
apt-get install proj libgeos-dev libcurl3-dev libfreetype6-dev libgdal-dev libjpeg-dev libpng-dev libgd2-xpm-dev | apt-get install proj libgeos-dev libcurl3-dev libfreetype6-dev libgdal-dev libjpeg-dev libpng-dev libgd2-xpm-dev | ||
libxml2-dev flex bison | libxml2-dev flex bison | ||
+ | |||
+ | Installieren Sie PostgreSQL wie folgt: | ||
+ | |||
+ | apt-get install postgresql-8.1 postgresql-client-8.1 postgresql-contrib-8.1 postgresql-server-dev-8.1 | ||
Wechseln Sie in das contrib-Verzeichnis des entpackten PostgreSQL-Quellcodes: | Wechseln Sie in das contrib-Verzeichnis des entpackten PostgreSQL-Quellcodes: |
Revision as of 06:25, 11 February 2008
Ok, Sie haben also Debian Etch (4.0) auf Ihrem Rechner laufen und möchten dort nun eine eigene Umgebung für den MapServer aufbauen. Wie immer führen natürlich viele Wege nach Rom. Mittels folgendem sollte es auch gehen: Führen Sie als root folgende Befehle auf der Kommandozeile aus:
apt-get update (aktualisiert die Übersicht der verfügbaren Pakete) apt-get upgrade (alle auf dem System installierten Pakete werden auf die aktuellste Version gebracht)
Anschließend müssen versch edene Basisbibliotheken/Programme installiert werden.
Geben Sie ein:
apt-get install zip unzip bzip2 zlib1g-dev libreadline-dev build-essential
Achten Sie darauf, dass unter /etc/apt/sources.list auch gültige Angaben zu Debianquellen stehen, z.B. :
deb http://ftp.de.debian.org/debian/ etch main deb-src http://ftp.de.debian.org/debian/ etch main deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib
Installation von Apache
apt-get install apache2
Apache2 besteht nicht mehr nur aus einer zentralen Konfigurationsdatei (httpd.conf) sondern aus mehreren. Die Konfigurationsdateien liegen in /etc/apache2. Editieren Sie einmal die Datei 000-default, welche im Verzeichnis /etc/apache2/sites-enabled liegt. Kommentieren Sie den Ausdruck RedirectMatch ^/$ /apache2-default/ aus, also wie folgt:
# RedirectMatch ^/$ /apache2-default/
Löschen Sie außerdem folgendes Verzeichnis:
rm -R /var/www/apache2-default/
Einen Neustart des Aapche erreichen Sie mittels
/etc/init.d/apache2 restart
Geben Sie nun in Ihrem Browser
http://localhost
ein. Der Apache greift auf das Verzeichnis
/var/www
zu und stellt den -in diesem Falle nicht vorhandenen- Inhalt dar.
Verzeichnisse: /etc/apache2/sites-available – Verzeichnis für vHosts-Dateien
/etc/apache2/sites-enabled – Verzeichnis für vHosts-Dateien, die aktiviert sind
/var/www – default Veröffentlichungsverzeichnis des Apache
/usr/lib/cgi-bin – default cgi-bin des Apache
/etc/php5/apache2/php.ini – PHP.INI-Datei von PHP5 im Apache2
Installation von PostgreSQL/PostGIS
Zunächst brauchen Sie eine ganze Menge weitere Dateien. Geben Sie ein:
apt-get install proj libgeos-dev libcurl3-dev libfreetype6-dev libgdal-dev libjpeg-dev libpng-dev libgd2-xpm-dev libxml2-dev flex bison
Installieren Sie PostgreSQL wie folgt:
apt-get install postgresql-8.1 postgresql-client-8.1 postgresql-contrib-8.1 postgresql-server-dev-8.1
Wechseln Sie in das contrib-Verzeichnis des entpackten PostgreSQL-Quellcodes:
cd /var/src/postgresql-8.2.4/contrib wget http://postgis.refractions.net/download/postgis-1.2.1.tar.gz tar xzf postgis-1.2.1.tar.gz mv postgis-1.2.1 postgis cd postgis ./configure -–with-pgsql=/usr/local/pgsql/bin/pg_config make make install
Vielleicht möchten Sie jetzt ausprobieren, ob Sie auch wirklich Datenbanken
anlegen können.... Folgende Schritte sind notwendig:
adduser postgres (ein Standarduser mit dem Namen „postgres“ wird angelegt, Sie müssen hierfür auch ein Passwort festlegen) mkdir /usr/local/pgsql/data (Verzeichnis anlegen) chown postgres /usr/local/pgsql/data („postgres“ wird Besitzer des Verzeichnisses) su – postgres (es wird sich als „postgres“ eingeloggt) /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data (Datenbankschema wird initialisiert) /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start (Start des Datenbankservers)
Anschließend sollte template1 PostGIS-Unterstützung bekommen. template1 ist die Vorlage für alle Datenbanken. Datenbanken erben also von diesem template und haben dann ebenfalls PostGIS-Funktionen.
/usr/local/pgsql/bin/createlang plpgsql template1 /usr/local/pgsql/bin/psql -d template1 -f /usr/local/pgsql/share/lwpostgis.sql (PostGIS- Funktionen in die Datenbank bringen) /usr/local/pgsql/bin/psql -d template1 -f /usr/local/pgsql/share/spatial_ref_sys.sql (Koordinatensysteme in Datenbank bringen)
Dadurch, dass PostgreSQL aus dem Quellcode installiert wurde, wird der Datenbankserver bei einem Hochfahren des Rechners nicht automatisch gestartet, das ist es aber, was wir wollen. Folgende Schritte sind dafür notwendig (als root):
mv /var/src/postgresql-8.2.4/contrib/start-scripts/linux /etc/init.d/postgresql
Damit PostgreSQL mit tcp/ip Unterstützung gestartet wird sollte der Parameter -i in dem Skript (/etc/init.d/postgresql) gesetzt werden, also z.B.:
echo -n "Starting PostgreSQL: " su - $PGUSER -c "$DAEMON -i -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok"
Ein
update-rc.d postgresql defaults
sorgt dafür, dass bei jedem Hochfahren des Rechners PostgreSQL/PostGIS automatisch aktiviert wird. Sie können den Server auch mit
/etc/init.d/postgresql restart
händisch neu starten. (aber Achtung: Die Datei muss von ihren Rechten her auch ausführbar sein, kann man mit chmod 755 postgresql einrichten).
Installation von PHP
Führen Sie aus:
apt-get install libapache2-mod-php5 php5 php5-common php5-gd php5-pgsql php5-dev
In der php.ini (/etc/php5/apache2/php.ini) müssen Sie ein paar kleine Veränderungen durchführen.
Die extensions für php liegen im Verezichnis mit dem merkwürdigen Namen /usr/lib/php5/20060613+lfs
Tragen Sie folgendes in die php.ini ein
extension=gd.so extension=pgsql.so
Anschließend ein Neustart des Apaches und PHP läuft auch mit PostgreSQL-Unterstützung. Legen Sie zum Testen mal ein PHP-Skript mit folgendem Inhalt an:
<? phpinfo(); ?>
und speichern Sie dieses unter /var/www.index.php. Wenn Sie dann http://localhost/index.php aufrufen können Sie die PHP-Umgebung sehen.
Einrichtung des UMN MapServers
Seit Version 5.0 wird zum Rendering der Bilder nicht nur die GD-Bibliothek sondern auch die AGG-Bibliothek benutzt.
Im Verzeichnis /var/src folgendes eingeben:
wget http://www.antigrain.com/agg-2.5.tar.gz tar xzf agg-2.5.tar.gz cd agg-2.5 make
Anschließend dann die MapServer-Quellen holen und den Mapserver:
wget http://download.osgeo.org/mapserver/mapserver-5.0.0.tar.gz tar xzf mapserver-5.0.0.tar.gz cd mapserver-5.0.0
Dann in den Quellen des MapServer die Datei mapsymbol.h verändern:
#define MS_SYMBOL_ALLOCSIZE 200 (Anzahl der Symbole hochgesetzt)
...sowie die Datei mapserver.h
#define MS_LAYER_ALLOCSIZE 200 #define MS_CLASS_ALLOCSIZE 20 #define MS_STYLE_ALLOCSIZE 4 ... #define MS_MAXIMAGESIZE_DEFAULT 10000
Jetzt den MapServer konfigurieren:
./configure --with-ogr --with-gdal --with-wmsclient --with-wmsserver --with-wfsclient --with-wfs --with-tiff --with-jpeg --with-png --with-freetype --with-proj --with-geos --with-agg=/var/src/agg-2.5 --with-postgis=/usr/local/pgsql/bin/pg_config --with-threads --with-php=/usr/include/php5
und kompilieren
make
Anschließend sollte ein ./mapserv -v folgendes ergeben:
OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=THREADS SUPPORTS=GEOS INPUT=TIFF INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
Das mapserv-binary kopieren Sie nach /usr/lib/cgi-bin
cp /var/src/mapserver-5.0.0/mapserv /usr/lib/cgi-bin
Ein http://localhost/cgi-bin/mapserv sollte dann folgende Meldung ergeben:
No query information to decode. QUERY_STRING is set, but empty.
Prima!!! Der MapServer ist fertig eingerichtet. Um in PHP-Skripten PHP/Mapscript zu nutzen sollte noch die entsprechende Bibliothek verschoben werden:
cp /var/src/mapserver-5.0.0/mapscript/php3/php_mapscript.so /usr/lib/php5/20060613+lfs/
Anschließend erweitern Sie die Datei /var/www.index.php so dass diese nun folgenden Inhalt hat:
<? dl ("php_mapscript.so"); phpinfo(); ?>
Wenn sie dann http://localhost/index.php aufrufen, dann sehen Sie, dass nun auch Mapscript integriert ist.
Diese Anleitung wurde von Kai Behncke erstellt.