[Qgis-user] QGIS Server and PostgreSQL projects
User Adminoff
satadm at gmail.com
Sat Sep 7 03:18:18 PDT 2024
Hi Jorge,
Thank you for your reply, I saw the solution with Apache rewrite rule,
but I'm currently on nginx and was looking for a way to have it without
additional rewrites.
Still, if this is the only possible way now to have projects from
database to be served on QGIS Server, I will try it a bit later.
Thanks again :)
Jorge Gustavo Rocha via QGIS-User wrote:
>
> Hi,
>
> It is possible and works pretty well. I do it with dozens of QGIS
> projects.
>
> I use a rewrite rule in Apache to point to the project on the database.
>
> Check our this can be done is this comment:
>
> https://github.com/qgis/QGIS/issues/31192#issuecomment-756105179
>
> Best regards,
>
> Jorge
>
> On 06/09/24 12:41, User Adminofff via QGIS-User wrote:
>> Hi,
>>
>> I'm trying to make QGIS Server to serve projects from PostgreSQL
>> database on the web.
>> Could anyone tell me please, is it possible to do that, or I can
>> serve only files?
>>
>> The general workflow should look like this:
>>
>> 1. Operators with QGIS Desktop are connecting to PostgreSQL, and
>> create/modify projects in it.
>> No files are involved. This part works, I was able to save test
>> project on one system, and open it on the other.
>>
>> 2. After finishing project creation/modification, Operators send a
>> link to it to the consumers/implementors.
>> The idea is to be able to view the project in a browser on any
>> device. No editing is needed, at least at this moment.
>> I've installed QGIS Server on the same host as PostgreSQL, set
>> nginx/related stuff, and tested that it successfully serves file
>> project.
>> Then I've tried to get the project from database. qgis user, under
>> which QGIS server is run, was allowed passwordless connection to
>> PostgreSQL via localhost.
>>
>> Having test URL for file like this
>> https://domain.com/qgisserver/cgi-bin/qgis_mapserv.fcgi?LAYERS=countries&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS=EPSG:4326&WIDTH=400&HEIGHT=200&BBOX=-90,-180,90,180&MAP=/home/qgis/projects/world.qgs
>>
>>
>> I've replaced file path with naive PostgreSQL URL like this
>> https://domain.com/qgisserver/cgi-bin/qgis_mapserv.fcgi?LAYERS=countries&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS=EPSG:4326&WIDTH=400&HEIGHT=200&BBOX=-90,-180,90,180&MAP=postgresql://127.0.0.1:5432?sslmode=disable&dbname=qgis&schema=world&project=world
>>
>> But got this error:
>>
>> <ServerException>
>> Project file error. For OWS services: please provide a SERVICE and a
>> MAP parameter pointing to a valid QGIS project file
>> </ServerException>
>>
>> The error says that QGIS Server wants file, no mentions about database.
>> On other hand, documentation below says that for MAP parameter either
>> file path or PostgreSQL URL is needed, so it should work?
>>
>> https://docs.qgis.org/3.34/en/docs/server_manual/config.html#qgis-server-envvar
>>
>> QGIS_PROJECT_FILE
>> The .qgs or .qgz project file, normally passed as a parameter in the
>> query string (with MAP), you can also set it as an environment
>> variable (for example by using mod_rewrite Apache module).
>>
>> **Note that you may also indicate a project stored in PostgreSQL**,
>> e.g.
>> postgresql://localhost:5432?sslmode=disable&dbname=mydb&schema=myschema&project=myproject
>> or inside a geopackage file, e.g.
>> geopackage:/path/to/geopackage/file.gpkg?projectName=myProjectName.
>>
>>
>> Searching in the Internet for the error above, I've found this bug
>> report
>> https://github.com/qgis/QGIS/issues/31192
>>
>> From which I've got the idea to encode PostgreSQL URL in test URL,
>> but it didn't work with the same error as above.
>> Also, it looks like report author is connecting with QGIS Desktop to
>> QGIS Server, not browser, so this is not my case?
>> Also-also, as I've stuck with nginx for unrelated to QGIS reasons, I
>> cannot test proposed there Apache rewrite magic.
>>
>> I've tried to see if there is anything useful in QGIS Server logs,
>> but there are no any related messages in them.
>> I've set QGIS_SERVER_LOG_PROFILE to true, but that didn't change
>> anything. I see my request to QGIS server only in nginx logs, but
>> nothing in QGIS Server logs, and no even failed connection attempts
>> in PostgreSQL logs.
>>
>> So, is there any way to have PostreSQL projects served via QGIS
>> Server, or I can use only files?
>>
>> _______________________________________________
>> QGIS-User mailing list
>> QGIS-User at lists.osgeo.org
>> List info:https://lists.osgeo.org/mailman/listinfo/qgis-user
>> Unsubscribe:https://lists.osgeo.org/mailman/listinfo/qgis-user
> --
> Jorge Gustavo Rocha
> Geomaster, LDA
> "Take the open source journey with us"
>
> VAT/NIF: PT 510 906 109
> Phone: +351 253 257 173 (landline)
> Mobile: +351 910 333 888 (cellular)
>
> Rua Afonso Palmeira, 31, 7 D
> 4715-278 Braga
> PORTUGAL
> GPS 41.54627, -8.40432
>
>
> _______________________________________________
> QGIS-User mailing list
> QGIS-User at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20240907/0e8f56e4/attachment.htm>
More information about the QGIS-User
mailing list