Jag skulle vilja prova en server med öppen källkod, men det är så svårt…
Jag hoppas att jag genom åren kunnat visa att om man bara bestämmer sig för att prova och inte ger upp så är det inte alls svårt att sätta upp en egen server för geodatatjänster. Men vi tar det en gång till.
Du kan använda ”OS Geo Live” för att prova utan att installera, där de flesta serverfunktioner redan är installerade, eller så kan du använda exempelvis Boundless ”Open Geo Suite”, som installerar och lägger till rätta väldigt mycket automatiskt.
Vill du veta mer om OS Geo Live eller Open Geo Suite så kan du söka här på bloggen så kommer du att hitta flera inlägg som behandlar dessa.
Nu kör vi en manuell installation av en geodatabas, samt en geoserver för OGC-tjänster som WMS/WFS samt möjlighet att skapa webbkartor. Detta är inte riktigt lika lätt som OS Geo Live eller Open Geo Suite, men inte långt ifrån. Även detta har jag tidigare inlägg som avhandlar så jag hoppas att ingen tycker att jag är tjatig…
Jag installerar på en Linux Ubuntu server 14.04, men jag antar att många kommandon är samma på andra linux distributioner. Servern installeras med DHCP adress, men det är inte svårt att sätta en fast adress och lägga in datorn i en befintlig nätverksstruktur om så önskas.
Om man vill kan man ladda hem och kompilera kod för att få de absolut senaste versionerna av de mjukvaror jag kommer att använda, men i andan att hålla det enkelt så nöjer jag mig med den som finns via standardkällorna.
sudo apt-get install postgresql-9.3-postgis-2.1 -y
Sedan behöver man (som vanligt) sätta upp lösenord och tillåta att man ansluter till databasen från en annan dator.
sudo -u postgres psql postgres \password postgres (nytt lösenord) \q
Ändra i filen /etc/postgresql/9.3/main/postgresql.conf:
#listen_addresses = 'localhost' till listen_addresses = '192.168.0.100'
Du ersätter IP-adressen med din egen (visa IP med ifconfig). Om du är ovan med att redigera filer i linux kan du exempelvis använda ”nano”:
sudo nano /etc/postgresql/9.3/main/postgresql.conf
Redigera texten, använd CTRL+O för att spara och CTRL+X för att avsluta.
Du behöver även lägga till en rad i filen /etc/postgresql/9.3/main/pg_hba.conf.
host all all 192.168.0.0/24 md5
Även här anpassar du nätadressen till ditt eget nät. Observera att det inte är serverns IP, utan nätverkets adressrymd (”0” på slutet), i mitt exempel så använder jag ”/24” vilket betyder alla adresser som börjar på ”192.168.0.X”.
Efter omstart av postgres (sudo service postgresql restart) eller servern (sudo reboot) så skall det gå att ansluta till servern från exempelvis PgAdminIII på en annan dator.
Vill du ändå använda den nysläppta PostGIS 2.2 så kör nedanstående på servern:
sudo apt-get install postgresql-server-dev-9.3 sudo apt-get install make libgdal-dev libxml2-dev libgeos-dev libproj-dev wget http://download.osgeo.org/postgis/source/postgis-2.2.0.tar.gz tar -xf postgis-2.2.0.tar.gz cd postgis-2.2.0 ./configure make sudo make install
För att kunna skapa egna PostGIS databaser så behövs även en mall. Beroende på om du har PostGIS 2.1 eller 2.2 så kan du behöva redigera lite i kommandona nedan.
cd /usr/share/postgresql/9.3/contrib/postgis-2.1 sudo -u postgres createdb mall_postgis sudo -u postgres psql -d mall_postgis -f postgis.sql sudo -u postgres psql -d mall_postgis -f rtpostgis.sql sudo -u postgres psql -d mall_postgis -f spatial_ref_sys.sql
Det är sedan bara att skapa de användare, grupper och databaser man vill i exempelvis PgAdminIII.
Jag skapar användaren ”klakar” och rollen ”geousers”, där ”klakar” är medlem. Jag skapar en databas ”geodata” baserad på mallen som skapades i kommandona ovan (sätts på Definition fliken). På Privileges lägger jag till gruppen geousers och tar bort ”Public”.
Scheman och tabeller kan sedan skapas i QGIS. I QGIS 2.12 kan man till och med göra det i QGIS Browser.
Det skall bli skönt med säkrare hantering av inloggningar och lösenord i exempelvis PostGIS när QGIS 2.12 släpps.
GeoServer
GeoServer kan inte installeras med ett enkelt apt-get kommando. Men det är inte så svårt ändå…
sudo apt-get install tomcat7 unzip wget http://downloads.sourceforge.net/project/geoserver/GeoServer/2.8.0/geoserver-2.8.0-war.zip unzip geoserver-2.8.0-war.zip sudo cp geoserver.war /var/lib/tomcat7/webapps
Surfa in på http://192.168.0.100:8080/geoserver eller motsvarande på din egen server. Det kan i och för sig ta en liten stund för servern att läsa in hela paketet, så ha is i magen om inget händer direkt.
Logga in med admin/geoserver, vilket är en av alla säkerhetsjusteringar som du bör ändra på…
Det finns lite data redan, men du kan lägga till dina egna PostGIS lager enkelt.
Börja med att skapa en ny ”Arbetsyta”.
Klicka på ”Förråd” och sedan ”Lägg till nytt förråd”. Därefter väljer du ”PostGIS” och fyller i relevanta fält.
Här gäller det att det redan finns ett schema i PostGIS databasen på angiven adress, som angiven användare kan komma åt. Dessa har du således redan skapat med exempelvis QGIS.
Jag har bara ett lager (tabell) inläst i mitt schema, så nästa steg blir att ”Publicera” detta. Man behöver inte mer än klicka på länken för att beräkna utsträckning så kan man klicka på ”Spara” i nästa steg och så är det klart.
Under ”Förhandsvy Lager” så kan man enkelt förhandsgranska det nyss publiserade lagret.
Att skapa stilar och snygga kartor för WMS och Open Layers är nu bara en fråga om lite pyssel…
I morgon skall jag se om jag kan förenkla lite till och rätta några småproblem som kan vara bra, men inte nödvändiga att fixa till. Jag skall se om jag hinner titta lite mer på detaljer i tjänsterna också.