Tag Archive | VirtualBox

Buggtesta QGIS 2.3

I väntan på QGIS 2.4 så kan alla som har lite tid över testa version 2.3, som kommer att bli 2.4 när alla buggar är rättade. Inte minst så kan man hjälpa projektet att hitta alla buggar, så länge man anmäler dessa på korrekt sätt. Det hjälper inte mycket att klaga i tweets eller i bloggar, utan se till att rapportera detta på QGIS hemsida.

När du hittar ett problem så börja med att söka efter detta så att det inte rapporteras dubbletter.

Om du sedan inte har ett konto så måste du skapa ett, vilket inte är svårt. När du rapporterar beskriv så tydligt du kan vad du upplever och hur man återskapar problemet. Är det förknippat med vissa data så bör du skicka med en hänvisning till dessa data. Om programmet kraschar så har jag märkt att det kan hjälpa att starta QGIS från kommandoprompten och därmed kunna läsa eventuella debuggmeddelanden, vilka i så fall också bifogas i rapporten.

Nu vill man kanske inte installera en skakig programvara i det vanliga operativsystemet och om man inte har en extra dator att laborera med så kan ett alternativ vara Virtuella datorer.

Jag använder dessa ofta och här har jag använt VirtualBox för att installera Xubuntu 14.04.

Även om nu Xubuntu skall vara litet och lätt så kan det visa sig att de 8 gigabyte som avdelas som standard i VirtualBox är lite lite, så om du kan så öka på detta med några gigabyte och skall du lägga till massor med data så får du ta hänsyn till detta också. Som alternativ kan du lägga till en delad katalog från värddatorn exempelvis om du har en katalog med geodata så slipper du kopiera dessa mellan maskiner.

I mitt fall blir det som standard en väldigt liten skärm, men ett terminalkommando i den virtuella klienten och en omstart löser det:

sudo apt-get install virtualbox-guest-utils virtualbox-guest-x11 virtualbox-guest-dkms

Det går att installera ”gästtillägg” via VirtualBox-menyn också, men jag tycker att kommandot ovan ger en snyggare lösning. Efter detta skall det gå att köra den virtuella datorn i helskärmsläge (host + f / Höger Ctrl + f på Linux).

Nåja, åter till QGIS. Först så måste man lägga till rätt programmkälla och det går att göra i terminalen, men det går lika bra i den normala programcentralen.

Screenshot from 2014-06-07 13:03:29

Beroende på vilken Ubuntuversion du kör så lägger du till en rad på fliken ”Övrig programvara” i ”Programkällor…” (menyn ”Redigera”).

Sedan är det bara att söka efter QGIS och kontrollera att det är version 2.3 som kommer att installeras.

Det kan hoppa upp lite meddelanden om ”opålitliga programkällor” men det är som det ska, och när man kör virtuellt så kan man ju chansa lite…

Om du får problem med installationen så prova från terminalen:

sudo apt-get install qgis

Nu är det säkert att testa och när man är klar så är det bara att radera den virtuella maskinen och allt kommer att vara som vanligt.

 

Egen server för geodatatjänster – Del 1

Då är det nytt år och kanske dags att fundera på om man skall dra igång något nytt projekt för att förbättra karthanteringen, eller bara vill testa något nytt och ha lite kul.

Det finns inte minst många kommuner som inte har en supergenomtänkt plan för hur man skall hantera geografisk information och krav från EU med INSPIRE och Svensk geodatasamverkan med portaler hit och dit, samtidigt som kostnaderna för den tekniska lösningen måste hållas nere.

Oavsett skälen så startar jag nu en längre serie inlägg om hur man kan bygga en komplett tjänst för att hantera geodata på alla nivåer, för såväl GIS-användare som för den nyfikna allmänheten, och allt däremellan. Exakt hur många delar det blir vet jag inte just nu, men resultatet kommer att sammanfattas i en ”bok” på slutet, som kommer att publiceras här på bloggen. Mycket har tagits upp tidigare, men en del är nytt och framför allt så hänger allt ihop.

Första delen

Här handlar det om förutsättningarna för att testa. Det kan man göra på fysiska datorer, men jag gillar virtuella för prov och försök.

Först och främst så behöver man ladda hem VirtualBox från Oracle (https://www.virtualbox.org/).

Det är en gratis programvara som finns för Windows, OS X och Linux. Det går att flytta virtuella maskiner mellan dessa plattformar och det spelar ingen roll vilken plattform man väljer att installera på.

bok1

För att skapa en ny virtuell dator så klickar man på ”New”, så startas en guide där man gör grundläggande inställningar för att beskriva vilken hårdvara som skall simuleras.

bok2

I det första steget så väljer man namn på den virtuella maskinen och vilket operativsystem man kommer att använda. Det är inte själva datornamnet man sätter, utan vad VirtualBox ”projektet” skall heta, men det lönar sig att döpa dessa till något passande om man har flera för att skilja dessa åt.

bok3

Nästa steg är att avdela RAM minne till den virtuella datorn. Att tänka på är att det bara finns en begränsad mängd fysiskt minne, och det går bara att dela ut en del av detta till virtuella maskiner, så vill man köra flera samtidigt så får man fördela det mellan dessa. Hur mycket som går att fördela beror på mängden RAM i värddatorn och dess operativsystem.

I de kommande stegen så skapar man uppstartsdisk, filtyp på diskavbildningen, hur utrymmet skall allokeras, plats för diskavbildningen och hur stor den maximalt får bli. I de flesta fall så fungerar de förval som är gjorda för dessa steg, men om man exempelvis vill ha rejält med diskutrymme i den virtuella datorn så går det att ändra.

bok4

Beroende på vad man skall använda den virtuella datorn till, och vilka resurser som är tillgängliga, så kan det vara lämpligt att tilldela den virtuella datorn extra kraft.

I ”Settings” (ctrl – s) så gör man inställningar för exempelvis hur många processorkärnor som maskinen får använda, grafikminne (för en server spelar detta mindre roll) och nätverk. Jag brukar ändra från NAT till ”Bryggat nätkort”, så blir den virtuella maskinen tydligare en del av det vanliga nätverket.

bok5

När den virtuella datorn startar första gången så görs detta med en guide där man väljer hur datorn skall startas. Bland annat så väljer man vilket installationsmedia som skall användas. Det går att använda värddatorns CD/DVD-läsare eller en ISO-fil med en skivavbildning. För den här guiden så används en skivavbildning nedladdad från http://ubuntu.com.

bok6

När man sedan slutför guiden så körs installationen precis som om det vore en fysisk dator. När man har fönstret aktivt för den virtuella datorn så kan man använda tangentbordet som om det var anslutet till den. Även musen fungerar på detta sätt, men för ett serveroperativ så används normalt ingen mus.

När jag installerar Ubuntu Server så brukar jag välja Svenska som språk och ett lämpligt datornamn och användare. I övrigt så är det förvalen rakt igenom, förutom på de platser där installationen frågar efter om man vill skriva ändringarna till disk (två platser).

bok7

När installationen är klar så brukar det vara en god idé att installera de senaste uppdateringarna med dessa kommandon.

sudo apt-get update
sudo apt-get upgrade

Nu är servern färdiginstallerad och vi kan gå vidare med nästa steg.

Ett system för geografisk information

Detta är en uppdatering av ett tidigare inlägg där jag försökte skapa ett ”komplett” system för att hantera geografisk information och kartor för GIS och webb.

Den här gången så går jag inte in på detaljer när det gäller installationen utan använder mitt skript för installation på Ubuntu Server 12.04 LTS, så vill du testa så är det där du skall börja. Jag installerar en virtuell server med Oracle VM VirtualBox på en Windows 7 klient (64-bit), men det går precis lika bra att installera på en fysisk dator om så önskas.

Jag har valt Windows på klienten för att det blir lite enklare att hantera filer i nätverk med QGIS för användarna, och det är ju klart vanligast med Windows som klient i de flesta nätverk.

När servern är grundinstallerad (defaultinställningar för det mesta och eget val för datornamn och användare) så kör jag mitt skript:

sudo su
wget http://geosupport.kvarnarp.eksjo.com/files/geosupport.sh
sh opengeo.sh

När skriptet kör så väljer jag defaultvärden för OpenGeo Suite samt att installera PostGIS. Jag lägger även till Drupal (CMS) och QGIS-Server, men inte Nuxeo (DMS).

Skriv ner information om datornamn, IP-adress, extra instruktioner och liknande medan skriptet kör. När det står viktig information på skärmen så pausar skriptet och väntar på att du skall göra något så var inte orolig för att texten rullar på för fort. Det som måste fixas är lösenord för postgres-användaren och din användare för Samba fildelning i nätverket. Instruktioner för hur detta går till får man i skriptet. Det sista som jag gör efter installationen är att starta om servern (för säkerhets skull):

reboot

Konfigurera Drupal

Använd en webbläsare och skriv in IP-adressen till servern. Då skall du få upp ett webbgränssnitt för att konfigurera klart din webbserver.

blogg2

Det är nu du skall använda det lösenord som du skapat för postgres användaren i PostgreSQL (databas: drupal, användare: postgres, lösenord: *******). När detta är klart så skall du bara ändra tillbaka rättigheterna till konfigurationsfilerna på servern:

chmod a-w /var/www/sites/default/
chmod a-w /var/www/sites/default/settings.php

Skapa karta (Steg 1)

I QGIS på klienten så skapar jag min karta som jag vill att den skall se ut. Data måste vara tillgängligt från servern så i mitt exempel använder jag PostGis data från Medford exemplet som följer med GeoServer. Projektfilen från QGIS sparar jag på den delade resursen ”QGIS” på servern.

Nu går det att komma åt kartan via WMS på adressen: http://Server-IP/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities. Om du skriver in adressen i en webbläsare så skall du få upp dit QGIS-projekt som ett lager i XML-texten. Om detta fungerar så är nu ”tjänsten” publicerad.

In i systemet (Steg 2)

Det går redan nu att använda den skapade tjänsten med OpenLayers, men då blir det till att skriva lite kod själv. Jag går i stället igenom det ”lata” alternativet.

I Geoserver (http://Server-IP:8080/geoserver) så skapas ett nytt workspace, jag döper mitt till ”Geosupport”. Därefter läggs en ny ”Store” till som pekar på QGIS-Server (WMS adressen från steg 1). Det finns flera lager i tjänsten (ett för varje lager i QGIS och ett för hela projektet), men jag väljer det för hela projektet att publisera. På så sätt så kan jag faktiskt lägga till mer data i fler lager och få dessa publiserade i tjänsten utan att behöva upprepa detta och nästa steg. Det räcker att projektfilen från steg 1 ovan redigeras.

Skapa webbkartan (Steg 3)

I GeoExplorer (http://Server-IP:8080/geoexplorer) så skapar jag en karta med de bakgrundskartor jag vill ha med, samt lägger till den i steg 2 skapade ”Geosupport” tjänsten från den lokala Geoservern. Sedan är det bara att Exportera kartan och kopiera den rad med HTML kod som visas.

blogg3

Koden klistras sedan in i en ny sida i Drupal och sim-sala-bim så har man sin karta på hemsidan.

blogg4

Problem på vägen

Det är många tjänster som körs samtidigt så det är mycket som kan gå fel. En dedikerad server är nog bättre än en virtuell.

WMS tjänsten på Geoserver cachar lagerna, vilket i sig kan ta lite tid, men som även kan göra att uppdateringar i QGIS projektet kan ta lite tid innan de slår igenom, men det är inga större problem.

Projekt skapade med QGIS-1.8 fungerar inte… Men om man använder 1.9 (utvecklingsversionen) så fungerar det bra.

PostGIS 2

Då var det dags för lite ”hard core”. Det blir mycket terminalfönster och kompilering av källkod med mera, men låt inte det skrämma dig utan följ noga beskrivningen så skall du snart ha en geodatabas med såväl rasterdatastöd som möjlighet att hantera topologier.

Jag kan direkt erkänna att grunden i instruktionen har hämtats från lite blandade källor på nätet och jag vet inte exakt vad allt gör, eller om allt behövs för det är ganska många steg som skall utföras. Det jag vet är att det fungerar, och det är väl det som är det viktiga.

Som vanligt så är utgångsläget Ubuntu Server 12.04 LTS. Jag testar alla installationer på virtuella servrar med Oracle VM VirtualBox, vilket kan vara något även för dig som inte har en dedikerad dator att installera Ubuntu på. Bara för att man kör Windows så behöver man inte känna sig handikappad;-).

Först och främst det som krävs för att PostGIS2 skall fungera.

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:sharpie/for-science
sudo apt-add-repository ppa:sharpie/postgis-stable
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-add-repository ppa:olivier-berten/geo
sudo apt-get update

Skriv sedan in nedanstående på en enda rad och vänta på att det skall installeras.

sudo apt-get install build-essential postgresql-9.1 postgresql-server-dev-9.1 libxml2-dev proj libjson0-dev xsltproc docbook-xsl docbook-mathml gettext postgresql-contrib-9.1 libgdal-dev

Då skall vi ha allt som behövs för att installera PostGIS 2.

sudo apt-get install postgresql-9.1-postgis2
wget http://download.osgeo.org/postgis/source/postgis-2.0.2.tar.gz
tar xfvz postgis-2.0.2.tar.gz
cd postgis-2.0.2
./configure
make
sudo make install
sudo ldconfig
sudo make comments-install
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/shp2pgsql
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/raster2pgsql

Sedan är det dags att fixa lösenord för postgres användaren i servern och i postgresql.

sudo passwd postgres

Ange nytt UNIX lösenord

sudo -s -u postgres psql
\password postgres

Ange nytt Postgreslösenord för användaren postgres.

\q
sudo vi /etc/postgresql/9.1/main/postgresql.conf

Som tidigare ändras #listen_addresses = ‘localhost’ till serverns IP (ta även bort #).

sudo vi /etc/postgresql/9.1/main/pg_hba.conf

Lägg till serverns IP-adressrymd under # IPv4 … raden i filen. (ex: host all all 192.168.0.1/24 md5).

Skapa tillägg för PostGIS och Topologi i PostgreSQL:

sudo -s -u postgres psql
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
\q

Då skall bara malldatabasen skapas, vilket sker med ett antal olika SQL skript. Det är denna ”template” som senare används för att skapa nya PostGIS databaser.

sudo -u postgres createdb template_postgis
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/raster_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology_comments.sql
sudo /etc/init.d/postgresql restart

Pust!!! Resten kan göras i PgAdmin III på en klient i nätverket och skiljer sig inte från det förra inlägget om PostGIS.

OK, du har testat PostGIS 1.5, men är inte nöjd. Du vill ha rasterdata och topologier med allt det senaste.

Med nedanstående instruktion kan du installera PostGIS 2.0.2 på en Ubuntu Server. Jag kan direkt erkänna att grunden i instruktionen har hämtats från lite blandade källor på nätet och jag vet inte exakt vad allt gör, eller om allt behövs för det är ganska många steg som skall utföras. Det jag vet är att det fungerar, och det är väl det som är det viktiga.

Först och främst det som krävs för att PostGIS2 skall fungera.

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:sharpie/for-science
sudo apt-add-repository ppa:sharpie/postgis-stable
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-add-repository ppa:olivier-berten/geo
sudo apt-get update
Skriv sedan in nedanstående och vänta på att det skall installeras.
sudo apt-get install build-essential postgresql-9.1 postgresql-server-dev-9.1 libxml2-dev proj libjson0-dev xsltproc docbook-xsl docbook-mathml gettext postgresql-contrib-9.1 libgdal-dev
Då skall vi ha allt som behövs för att installera PostGIS 2.
sudo apt-get install postgresql-9.1-postgis2
wget http://download.osgeo.org/postgis/source/postgis-2.0.2.tar.gz
tar xfvz postgis-2.0.2.tar.gz
cd postgis-2.0.2
./configure
make
sudo make install
sudo ldconfig
sudo make comments-install
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/shp2pgsql
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/raster2pgsql
Sedan är det dags att fixa lösenord för postgres användaren i servern och i postgresql.
sudo passwd postgres
Ange nytt UNIX lösenord
sudo -s -u postgres psql
\password postgres
Ange nytt Postgreslösenord för användaren postgres.
\q

sudo vi /etc/postgresql/9.1/main/postgresql.conf

Som tidigare ändras #listen_addresses = ‘localhost’ till serverns IP (ta även bort #).

sudo vi /etc/postgresql/9.1/main/pg_hba.conf

Lägg till serverns IP-adressrymd under # IPv4 … raden i filen. (ex: host all all 192.168.0.1/24 md5).

sudo -s -u postgres psql

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
\q
sudo -u postgres createdb template_postgis
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/raster_comments.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology_comments.sql

sudo /etc/init.d/postgresql restart

Pust!!! Resten kan göras i PgAdmin III på en klient i nätverket och skiljer sig inte från det förra inlägget om PostGIS.

[EDIT]

Det verkar som en del av texten försvinner i högermarginalen. Vet inte vad det beror på men undersöker om det går att åtgärda.

Tills vidare så finns hela texten även i kommentarsfältet om du klickar på rubriken.

Komplett Karttjänst på Webben

Eftersom det är långt mellan inläggen just nu så tänkte jag kompensera med en mastodont till ”gör det själv” artikel.

Målet är att skapa en webbkarta som mycket enkelt kan uppdateras från en QGIS klient på nätverket och publiceras på en GeoServer via WMS. Det är inte bara data som skall uppdateras, utan även utseendet på kartan, vad som skall synas i vilka skalintervall med mera.

Detta är sådant som normalt är ganska omständligt när man skall administrera via GeoServer och skriva SLD filer för olika lager, med mera. Nu skall jag dock baka in QGIS Server i det hela och då kan det bli mycket enklare.

Jag bygger med Ubuntu Linux 12.04 LTS Server, men blandar mellan PC, Mac och Linux på klientsidan så det blir lite att trixa med. Läs mer…

WordPress på GeoServern

Nej, detta har inte heller något direkt med GIS att göra.

Men om man vill installera en blogg på sin Linux server, där man redan har vissa resurser installerade, så är det inte så mycket som behöver läggas till för att få allt att fungera.

Normalt så installeras WordPress på en LAMP server (Linux, Apache, MySQL, PHP), men eftersom Open Geo Suite som jag använt tidigare installeras med PostgreSQL, så vore det smidigt om det gick att använda den i stället.

Nedan listar jag de handgrepp jag fick utföra för att få WordPress att fungera på en virituell Ubuntu 10.04 Server.

I grunden var Open Geo Suite installerad och konfigurerad tillsammans med OpenSSH och PHP5. Hur detta går till kan du läsa om i tidigare inlägg.

Gå till /var/www/ och skriv:

wget http://wordpress.org/latest.tar.gz

tar -xzvf latest.tar.gz

Sätt rättighether på /var/www/

chmod -R 777 /var/www/

De följande stegen görs på en annan dator.

Ladda hem och packa upp PG4WP från http://downloads.wordpress.org/plugin/postgresql-for-wordpress.1.2.2.zip

Överför hela katalogen pg4wp till /var/www/wordpress/wp-content/ via SSH (Jag använde cyberduck på min Mac).

Kopiera dp.php från pg4wp katalogen till /var/www/wordpress/wp-content/

Skapa en ny databas på servern vid namn ”wordpress” med pgAdmin.

Starta installationen via http://%5BIP adress]/wordpress/

Jag valde opengeo/opengeo som användarnamn och lösenord för wordpressdatabasen, så dessa uppgifter används även i wordpress installationen för att konfigurera databasen.

Jag har inte beskrivit alla momenten i detalj, men det som är utelämnat är nog ganska självförklarande.

Om allt fungerat så har du nu en fungerande WordPress på din GeoServer som du kan konfigurera efter behag. Det finns tillexempel massor med färdiga teman att installera från nätet.

Lycka till!

[PS]

Vill du ha in GIS i bloggen så går det att skapa en karta med GeoExplorer (länk i Open Geo Suites Dashboard) och klistra in HTML länken i ett inlägg.

GeoServer Steg för Steg.

Detta är ett inlägg som försöker beskriva hur Du själv skall göra för att få igång en egen GeoServer i Linux. Du skall förhoppningsvis inte behöva några direkta kunskaper i Linuxoperativsystem utan den mesta administration efter installationen görs i ett webgränssnitt.

Läs mer…