FGS installieren: Unterschied zwischen den Versionen
(→SSL Unterstützung für Apache) |
(→Eigenes Zertifikat erstellen) |
||
Zeile 176: | Zeile 176: | ||
=== Eigenes Zertifikat erstellen === | === Eigenes Zertifikat erstellen === | ||
+ | Eine gute Doku zur Erstellung von selbstgebauten Zertifikaten gibt es unter: | ||
+ | [http://www.schirmacher.de/display/INFO/Apache+SSL+Zertifikat+erstellen+und+installieren http://www.schirmacher.de/display/INFO/Apache+SSL+Zertifikat+erstellen+und+installieren] | ||
+ | Zunächst sollte geprüft werden, ob das Modul openssl bereits im fgs packet enthalten ist. Es sollte unter ''/home/fgs/fgs/bin'' stehen. Dann einen Ort suchen, wo man die Dateien ablegt, z.B. unter ''/home/fgs/fgs/etc/ssl/certs''. | ||
+ | |||
+ | Schlüssel mit 1024 Byte erzeugen. Der Name ist eigentlich egal (im Beispiel "nvp-geoport"). Diese müssen dann später nur in der httpd-ssl.conf richtig eingesetzt werden. | ||
+ | |||
+ | #>openssl genrsa -out /home/fgs/fgs/etc/ssl/certs/nvp-geoport.key 1024 | ||
+ | |||
+ | Wenn man den Schlüssel mit einem Passwort schützen möchte, folgender Befehl: | ||
+ | |||
+ | #>openssl genrsa -des3 -out nvp-geoport.key 1024 | ||
+ | |||
+ | Problem dabei ist, dass man dann fgs nicht im Batch Modus nach dem Hochfahren des Rechners starten kann, weil fgs bis zum St. Nimmerleinstag auf ein Passwort wartet. | ||
+ | |||
+ | Als nächstes ein Certificate Signing Request (CSR) erzeugen mit: | ||
+ | |||
+ | #>openssl req -new -key /home/fgs/fgs/etc/ssl/certs/nvp-geoport.key -out /home/fgs/fgs/etc/ssl/certs/nvp-geoport.csr | ||
+ | |||
+ | Dabei wird man so einiges gefragt. Wenn man nicht antworten will, gibt man einen Punkt ein, z.B. bei Password (und '''das''' vermeidet die Abfrage des Passworts beim Booten!): | ||
+ | |||
+ | [[Bild:FGS-Installation_10.png]] | ||
+ | |||
+ | Jetzt kann man noch mal prüfen, ob alle Angaben richtig sind: | ||
+ | |||
+ | #>openssl req -noout -text -in /home/fgs/fgs/etc/ssl/certs/nvp-geoport.csr | ||
+ | |||
+ | [[Bild:FGS-Installation_11.png]] | ||
+ | |||
+ | Zum Schluss erstellt man schließlich das Zertifikat, welches dann von den Browsern akzeptiert werden muss: | ||
+ | |||
+ | #>openssl x509 -req -days 3650 -in /home/fgs/fgs/etc/ssl/certs/nvp-geoport.csr -signkey /home/fgs/fgs/etc/ssl/certs/nvp-geoport.key -out /home/fgs/fgs/etc/ssl/certs/nvp-geoport.crt | ||
+ | |||
+ | [[Bild:FGS-Installation_12.png]] | ||
+ | |||
+ | Fertig! | ||
+ | fgs start kann nun ohne Eingabe eines Passwort erfolgen. | ||
+ | |||
+ | Wenn man später den Apache-SSL mit einem anderen Port laufen lassen möchte, den Port in der Datei ''/home/fgs/fgs/etc/fgs/pkgs/apache_mod_ssl-module/apache_mod_ssl.conf'' anpassen, z.B. SSLPORT=8443 => SSLPORT=443 | ||
+ | |||
+ | Nach der Einstellung fgs neu starten. | ||
+ | |||
+ | Welcher Port nach dem fgs start belegt wird, kann man mit folgendem Befehl prüfen: | ||
+ | |||
+ | #>netstat –ln | ||
<br><br><br><br> | <br><br><br><br> | ||
Version vom 3. Februar 2009, 16:13 Uhr
FGS ist ein vorkompiliertes Paket für LINUX-Systeme mit allen für WebGIS-Anwendungen notwendigen Komponenten. FGS gibt es als Installer-Pakete und dazugehörige Module, die einzeln nach Bedarf dazugeladen werden können.
Wenn man nicht das vorkompilierte Paket verwenden, sondern aus irgendeinem Grund die Pakete und Module selbst kompilieren möchte, kann man FGS-DEV verwenden. Siehe dazu
Inhaltsverzeichnis
Vorarbeiten
Einen Benutzer "fgs" in Yast anlegen.
Die Installation von FGS soll mit einem Benutzer "fgs" erfolgen, d.h. nicht als root. FGS kann auch mit dem Benutzer root installiert werden, es ergeben sich dann aber einige schwerwiegende Probleme:
- Der Benutzer root darf den Apache nicht starten
- Wenn man für das starten des Apache einen unterprivilegierten User anlegt, darf der nicht in /opt/fgs schreiben
Der FGS-Benutzer kann natürlich statt "fgs" auch ganz anders heißen.
Download Link von FGS unter: http://dl.maptools.org/dl/fgs/releases/1.0/1.0.0/self-installers/
Den Download Button der gewünschten Version (aktuell: fgs-mapserver_5.2.1-fgs_1.0.0-linux-i386.bin) wählen.
Unter fgs-mapserver_5.2.1-fgs_1.0.0-linux-i386.versions kann man die dazugehörigen reinkompilierten Module und deren Versionen abfragen:
mapserver-php:5.2.1 mapserver-base:5.2.1 libstdc++-lib:6.0.8 libgcc-lib:1 apache-base:2.2.8 expat-base:2.0.1 gd-lib:2.0.35 jpeg-lib:6b freetype-lib:2.3.5 libpng-lib:1.2.8 zlib-lib:1.2.3 curl-lib:7.16.4 openssl-lib:0.9.8a proj-lib:4.5.0 postgresql-lib:8.3.1 gdal-base:1.5.0 tiff-lib:3.8.2 libgeotiff-lib:1.2.4 xerces_c-base:2_8_0 unixODBC-base:2.2.10 libungif-base:4.1.3 libiconv-base:1.9.1 proj4_epsg42xxx-support:1.0.0 geos-lib:3.0.0 libxml2-base:2.6.19 agg-lib:2.4 php-base:5.2.5 python_mapscript-module:5.2.1 python-base:2.5.2 gdal_ecw-module:1.5.0 libecw-base:3.3.20060906 postgis-lib:1.3.2
Den Installer im Home-Verzeichnis von fgs verstauen.
Installation
Installationsdatei ausführbar machen mit
#>chmod 700 fgs-mapserver_5.2.1-fgs_1.0.0-linux-i386.bin
und ausführen:
#>./fgs-mapserver_5.2.1-fgs_1.0.0-linux-i386.bin
Verzeichnis angeben, in dem fgs installiert werden soll. Default ist /opt/fgs (für die Installation als root). Das ändern in /home/fgs/fgs:
Port festlegen unter dem Apache laufen soll. Default ist 8080:
Letzte Ausgaben auf jeden Fall mal sichern (und wenn es nur ein Screenshot ist). Denn da steht, wie man fgs so startet, dass fgs nach dem Booten automatisch hochfährt und wie man die Umgebungsvariablen für fgs einrichtet und wie man das automatisiert für jedes login.
Vor dem händischen Starten müssen die Umgebungsvariablen gesetzt sein. Das geht durch das Ausführen der Datei setenv.sh. Erstmal nach /home/fgs/fgs wechseln:
#>cd /home/fgs/fgs
Dann die setenv.sh ausführbar machen mit:
#>chmod 700 setenv.sh
und ausführen mit:
#>source setenv.sh
Wenn man möchte, dass setenv.sh automatisch nach dem Einloggen ausgeführt wird, führt man folgendes aus:
#>echo "source /home/fgs/fgs/setenv.sh" >> ~/.bashrc
Damit wird der Aufruf der setenv.sh an die Datei .bashrc des Users angehängt, die immer ausgeführt wird, wenn man sich als fgs anmeldet.
Damit FGS beim Booten des Servers automatisch startet, wird der Startbefehl in die rc.local geschrieben (den Befehl als root ausführen!):
#>echo "su root -c \"( . /home/fgs/fgs/setenv.sh ; fgs start )\"" >> /etc/rc.d/rc.local
und prüfen ob der Aufruf auch in der Datei anschließend drin steht:
#>less /etc/rc.d/rc.local
FGS starten
Nun können wir fgs starten. Einmal abmelden, wieder anmelden und fgs starten:
#>exit #>fgs start
Dabei stellen wir fest, dass er fgs nicht kennt. setenv.sh wurde ja auch noch nicht ausgeführt. Das machen wir aber nicht, sondern melden uns mal ab und wieder an und probieren dann noch mal und siehe da: Apache läuft schon. Macht nichts, den fahren wir runter mit:
#>fgs stop
Was bei der Gelegenheit gleich beschreibt, wie man fgs runter- und wieder hochfährt. Nu geht’s aber. "+Starting 'apache' :" ist ein gutes Zeichen:
Um zu prüfen, ob nun alles eingerichtet ist, einmal abmelden, als root neu booten und danach wieder anmelden als fgs:
#>exit #>shutdown –r now
Danach sollten die Umgebungsvariablen gesetzt sein und fgs schon laufen.
Nun können wir uns fgs auch mal vom Internet aus ansehen. Dazu die Adresse des Servers eingeben plus Port 8080, z.B. http://www.pkorduan.de:8080/ Dann erscheint in einem leeren fgs:
Jetzt haben wir den Mapserver, PHP, Apache, Unterstützung für MySQL (die aber separat installiert werden muss, wenn nicht schon vorhanden), Unterstützung für PostgreSQL (die Datenbank selbst aber noch nicht) sowie all die für den Mapserver wichtigen Pakete.
SSL Unterstützung für Apache
Die SSL-Unterstützung für den WebServer muss nur eingerichtet werden, wenn mit den Clients per https kommuniziert werden soll.
Das notwendige Modul heißt apache_mod_ssl-module:2.2.8 und kann entweder
- von der Seite http://dl.maptools.org/dl/fgs/releases/1.0/1.0.0/modules/ runtergeladen und in /home/fgs entpackt werden oder
- (der bequemere Weg) per Kommandozeile installiert werden:
#>fgs install apache_mod_ssl-module:2.2.8 http://dl.maptools.org/dl/fgs/releases/1.0/1.0.0/modules/
Dabei werden wir nach dem Port für HTTPS gefragt. Default ist 443.
Nun muss man eigentlich gar nichts mehr machen außer fgs stop und fgs start. Dabei wird Apache im SSL Mode gestartet. Wenn der SSL-Schlüssel mit Passwort versehen wurde, muß dieser vorher manuell eingegeben werden, was zu einem Problem beim automatischen Hochfahren wird.
So sieht es dann jedenfalls nach einem erfolgreichen Start aus:
Und so nach einem erfolgreichen Stop:
Eigenes Zertifikat erstellen
Eine gute Doku zur Erstellung von selbstgebauten Zertifikaten gibt es unter: http://www.schirmacher.de/display/INFO/Apache+SSL+Zertifikat+erstellen+und+installieren
Zunächst sollte geprüft werden, ob das Modul openssl bereits im fgs packet enthalten ist. Es sollte unter /home/fgs/fgs/bin stehen. Dann einen Ort suchen, wo man die Dateien ablegt, z.B. unter /home/fgs/fgs/etc/ssl/certs.
Schlüssel mit 1024 Byte erzeugen. Der Name ist eigentlich egal (im Beispiel "nvp-geoport"). Diese müssen dann später nur in der httpd-ssl.conf richtig eingesetzt werden.
#>openssl genrsa -out /home/fgs/fgs/etc/ssl/certs/nvp-geoport.key 1024
Wenn man den Schlüssel mit einem Passwort schützen möchte, folgender Befehl:
#>openssl genrsa -des3 -out nvp-geoport.key 1024
Problem dabei ist, dass man dann fgs nicht im Batch Modus nach dem Hochfahren des Rechners starten kann, weil fgs bis zum St. Nimmerleinstag auf ein Passwort wartet.
Als nächstes ein Certificate Signing Request (CSR) erzeugen mit:
#>openssl req -new -key /home/fgs/fgs/etc/ssl/certs/nvp-geoport.key -out /home/fgs/fgs/etc/ssl/certs/nvp-geoport.csr
Dabei wird man so einiges gefragt. Wenn man nicht antworten will, gibt man einen Punkt ein, z.B. bei Password (und das vermeidet die Abfrage des Passworts beim Booten!):
Jetzt kann man noch mal prüfen, ob alle Angaben richtig sind:
#>openssl req -noout -text -in /home/fgs/fgs/etc/ssl/certs/nvp-geoport.csr
Zum Schluss erstellt man schließlich das Zertifikat, welches dann von den Browsern akzeptiert werden muss:
#>openssl x509 -req -days 3650 -in /home/fgs/fgs/etc/ssl/certs/nvp-geoport.csr -signkey /home/fgs/fgs/etc/ssl/certs/nvp-geoport.key -out /home/fgs/fgs/etc/ssl/certs/nvp-geoport.crt
Fertig! fgs start kann nun ohne Eingabe eines Passwort erfolgen.
Wenn man später den Apache-SSL mit einem anderen Port laufen lassen möchte, den Port in der Datei /home/fgs/fgs/etc/fgs/pkgs/apache_mod_ssl-module/apache_mod_ssl.conf anpassen, z.B. SSLPORT=8443 => SSLPORT=443
Nach der Einstellung fgs neu starten.
Welcher Port nach dem fgs start belegt wird, kann man mit folgendem Befehl prüfen:
#>netstat –ln
Weitere FGS-Module hinzufügen
php.ini
Postgresql-Server installieren
PostGIS installieren
kvwmap-Datenbank für Postgresql