Cài QGIS Server trên Linux, dựa theo hướng dẫn của chị này^^
Kiểm tra hệ điều hành đang sài
lsb_release -a
Add key QGIS Server Source
gpg --keyserver keyserver.ubuntu.com --recv 1F9ADD375CA44993
gpg --export --armor 1F9ADD375CA44993 | sudo apt-key add -
sudo apt-get update
Cài QGIS Server và Apache mod Fcgi
sudo apt-get install qgis-mapserver libapache2-mod-fcgid
Restart Apache
sudo /etc/init.d/apache2 restart
Tuy nhiên do mình cài Lampp nên mình sẽ restart Apache thế này
cd /opt/lampp/
sudo ./lampp start
Test thử
http://dev.dothanhlong.org/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Kết quả không tìm thấy
Thường thôi, vụ này từng bị qua khi cài mapserver rồi =))
Chỉ việc copy file qgis_mapserv.fcgi trong thư mục cgi-bin của hệ thống bỏ vào cgi-bin của lampp thôi. Do mình cài lampp
Kết quả test lần 2
Ok, ngon lành cành đào rồi này =))
Giờ thêm thử bản đồ của mình xem thế nào :p
Quyết định chơi luôn cái bản đồ thửa cho nó "nặng", xuất ra geojson ~ 39Mb :v
Save project lại dưới 2 dạng
- thuadatq9.qgs cho QGIS 2x
- thuadatq9.qgz cho QGIS 3x
Mình tạo 2 loại project cho qgis2x và qgis3x để test xem QGIS Server nhận loại nào, kết quả là:
QGIS Server nhận file Project của QGIS 2x
Chép qua thư mục cgi-bin nơi chứa file qgis_mapserv
Link 2 file qgis_mapserv và wms_metadata ngoài thư mục cgi-bin vào thư mục chứa qgis project mình vừa tạo
Xem thêm về lệnh link trong linux
sudo ln -s ../qgis_mapserv.fcgi
sudo ln -s ../wms_metadata.xml
Test thử QGIS Server
http://dev.dothanhlong.org/cgi-bin/thuadatq9/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Oh no! bị lỗi không cho access vô @@
Lỗi này mình đã thử set lại chmod thư mục như không ăn thua => có thể do cấu hình host, htaccess gì đó..
Sau khi tham khảo một vòng ở các trang như:
https://askubuntu.com/questions/855648/cgi-scripts-on-apache2-gives-403-forbidden-when-the-cgi-are-in-a-linked-folder
It is because the symbolic link points to a directory, which is located outside of directories listed in your"virtualhost".conf
files. So you need to write down necessary directives in your/etc/apache2/apache2.conf
(or/etc/apache2/sites-available/*.conf
or/etc/apache2/conf-available/*.conf
) file to access/usr/lib/cgi-bin
. Something like:Alias /cgi-bin/linkName /usr/lib/cgi-bin<Directory /usr/lib/cgi-bin> Options +ExecCGI FollowSymLinks DirectoryIndex disabled AllowOverride None Require all granted # etc.. </Directory>
And maybe (but I'm not sure that it's necessary):sudo chown -R www-data:www-data /usr/lib/cgi-bin
.
If you makeAlias /cgi-bin/linkName /usr/lib/cgi-bin
you do not need to make a symbolic link.
Cái này mình hiểu sơ vấn đề đang vướng nhưng vẫn ko fix được
Cuối cùng mình tìm thấy cái này và đã làm ok
https://askubuntu.com/questions/601540/lamp-403-forbidden-access-on-custom-folder
This happens after you upgrade to apache 2.4.9+
basically just replaceOrder allow,denyallow from all
withRequire all granted
should fix this issue.
something like,<Directory /home/tom/Dropbox/web> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted</Directory>ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/<Directory "/usr/lib/cgi-bin"> AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted</Directory>
Here is a note from http://httpd.apache.org/docs/2.4/howto/access.html
Cách làm là sửa vhost. Căn cứ theo hướng dẫn trên, chỉ sửa lại tên các đường dẫn cho phù hợp với bản thân.
Kết quả
http://dev.dothanhlong.org/cgi-bin/thuadatq9/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Test lại QGIS Server với dữ liệu Việt Nam
http://dev.dothanhlong.org/cgi-bin/vntinh/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
Vậy là Ok.
Test thêm WMS từ QGIS Server vào QGIS
Thể hiện WMS từ QGIS Server lên Web bằng OpenLayers
http://dev.dothanhlong.org/stuff/vntinh.html
Ok, quá ngon. haha
Trước mình có dùng riêng MapServer để tạo ứng dụng chia sẻ Map Services riêng, cơ mà bị vướng phải style SLD upload lên cùng thì mới hiện style được. Do MapServer dùng mapfile của nó làm config nên hơi rắc rối.
Đang làm chưa xong, giờ mò ra cái QGIS Server này chắc phải chuyển sang dùng QGIS Server để làm tiếp cho gọn. Vể cái engine thì QGIS Server cũng dùng kiểu mapserver thôi nhưng... khoái vụ up project lên là chạy, khỏi tạo mapfile, hehe
Vọc đến đây thôi. Rảnh trước khi cài lại VPS thì thử note cái Geonote Book nữa, kaka
-soiqualang_chentreu-
]]>