CentOS 7 Üzerine QGIS Server Kurulumu

Daha önce QGIS Server ile ilgili bir yazı yayınlamıştım. Genel olarak tanıtımı ve Windows ortamında kurulumundan bahsetmiştim. Bu yazımda ise ücretsiz bir linux dağıtımı olan CentOS 7 üzerinde kurulumuna değineceğim. RHEL (Red Hat Linux Enterprise) tabanlı olan CentOS masaüstü kullanımının yanı sıra daha çok sunucu ihtiyaçlarının karşılanmasında kullanılmaktadır.

Örnek çalışmayı VMware Player ortamında CentOS 7 minimal dağıtımı üzerinde gerçekleştirdim. Yazımın temel konusu her ne kadar QGIS Server olsa da en azından linux (RHEL dağıtımları) hakkında temel bilgi sahibi olunması faydalı olacaktır.

Depoların Kurulması

Bu yazıyı yazarken var olan en son QGIS versiyonu 2.8 Wien idi. Yapmış olduğum araştırmalar sonucunda bu versiyona ait paketleri https://copr.fedoraproject.org/coprs/neteler/QGIS-2.8-Wien/ adresinde bulabildim. Onun haricinde kurulumu kaynak koddan derleyerek te yapabilirsiniz tabiki bu haliyle yorucu olacaktır. O yüzden ben hazır paketleri tercih ettim. Paketlerin eklemesine ve kuruluma geçecek olursak (root olmanız gerekiyor):

yum install epel-release

wget -O /etc/yum.repos.d/neteler-python-OWSLib-epel-7.repo https://copr.fedoraproject.org/coprs/neteler/python-OWSLib/repo/epel-7/neteler-python-OWSLib-epel-7.repo

yum update

yum install python-OWSLib

wget -O /etc/yum.repos.d/qgis-epel-7.repo https://copr.fedoraproject.org/coprs/neteler/QGIS-2.8-Wien/repo/epel-7/neteler-QGIS-2.8-Wien-epel-7.repo

yum update
yum install qgis-server

Sunucunun Yapılandırılması

Kurulumun ardından ufak tefek bir iki işlem haricinde herşey tamam sayılır. Şu haliyle yaptıklarımıza genel olarak bakacak olursak:

  • Apache Httpd 2.4 Sunucusu kuruldu.
  • QGIS Server kuruldu ve fcgi protokolü ile httpd sunucusuna entegre edildi.
  • QGIS 2.8 kuruldu.

Sunucumuz henüz çalışır durumda değil. Başlatmak için aşağıdaki komutu verin:
Service httpd start

Sunucu başladıktan sonra sayfayı ziyaret ederek kontrol edeceğim. Biliyorsunuzu ki VMware üzerinde çalışıyorum dolayısıyla makinaya ait IP ‘yi öğrenmek için:

ip addr

kendi bilgisayarınızdan bu adrese girdiğinizde aşağıda görülen karşılama sayfası gelecektir.

Şu haliyle her şey yolunda gözüküyor. Bir de QGIS Serverı kontrol edelim. Bunun için şu adresi

http://sunucu_ip_adresi/qgis/qgis_mapserv.fcgi? ziyaret ediyorum.

Şuan için bu hatanın çözümüyle çok fazla uğraşmadan kestirme bir yol ile bunu halletmeyi tavsiye ederim. Buradaki hatanın sebebi fcgi scriptlerinin çalışacağı dizin olan /var/www/cgi-bin dışında başka bir yerde çalışmasına izin verilmemesinden kaynaklanıyor. QGIS Server da fcgi ile çalışmakta ve cgi-bin klasörünün dışında kullanmaya çalışılınca böyle bir hata alınıyor. Bizim burada yapacağımız QGIS Server ‘i bulunduğu klasör olan /usr/libexec/qgis/qgis_mapserv.fcgi den alıp /var/www/cgi-bin/qgis_mapserv.fcgi ‘ye kopyalamak. Ayrıca sunucuya ait conf dosyasını da düzenleyerek işlemi tamamlayacağız. Öncelikle

cp /usr/libexec/qgis/qgis_mapserv.fcgi /var/www/cgi-bin/qgis_mapserv.fcgi
cp /usr/libexec/qgis/schemaExtension.xsd /var/www/cgi-bin/schemaExtension.xsd

kopyalama işlemini tamamlıyoruz. Ardından /etc/httpd/conf.d/ kalsöründeki qgis_mapserv.conf dosyasını açarak içeriğini şu şekilde değiştirip:

ScriptAlias /qgis/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
Options +ExecCGI
SetHandler cgi-script
</Directory>

kaydediyoruz. Yaptığımız işlemlerin ardında sunucuya reset atmamız gerekiyor. Bunun için

service httpd restart

komutu ile işlemi gerçekleştiriyoruz. Yukarıdaki adresi tekrardan ziyaret ettiğimizde

sonucunu alıyorsak herşey tamamdır. Sırada örnek bir OGC Web Servisini gerçekleştirmek var.

Örnek WMS Servisi

QGIS 2.8 ‘i açarak bir harita oluşturdum ve projeyi kaydettim. QGIS projeleri *.qgs formatından xml tabanlı dosyalardır. Bu dosyayı ve kullanılan veriyi sunucuya aktararak QGIS Desktop ‘ta ne varsa aynı şekilde sunabilme imkanı sağlıyor QGIS Server. Proje dosyalarında QGIS, veri ve stillerle ilgili tanımlamalar tutmaktadır. Yalnız burada önemli bir nokta var. Verilerin kendi bilgisayarımızda konumu mesela c:/cbsveri/a.shp olsun sunucuda da aynı yerde olmak zorundan aksi halde hata mesajı alırsınız. Bu çözmek için proje dosyasını kaydederken verinin izafi yolunu kaydedeceğiz. Bu zaten Default özelliktir. Öncelikle not defteri ile kaydettiğimiz proje dosyasını açarak <datasource> taglarını (kaç tane katman varsa hepsi için) aratın, sadece dosya adı ve uzantısı kalsın bunun haricinde yol varsa silin. Ardından proje dosyası ve verilerinizi sunucunuzdaki var/www/cgi-bin/ için atın (daha önceden kopyaladığınız qgis_mapserv.fcgi ile aynı yerde olacak).

Yaptıklarımızı öncelikle kontrol etmek için şu adresi ziyaret ediyoruz.

http://sunucu_ip_adresi/qgis/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities&MAP=ilproje.qgs

URL ‘ye dikkat edecek olursak MAP parametresi proje dosyamızın adını işaret etmektedir.

Aynı adresi QGIS Desktop ‘ta WMS penceresine ekleyip servisini kullanmaya başlayabilirsiniz.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s