[mapserver-dev] Projections and CONFIG file in MapServer 8.0

Seth G sethg at geographika.co.uk
Thu Jul 7 06:02:34 PDT 2022


Thanks, Steve and Jeff for the feedback. 
As system environment variables never worked with IIS (only FastCGI environment variables) I was only ever able to configure PROJ_LIB in a Mapfile. 

Logically, I'd assume a Mapfile would override a CONFIG setting, as it is the last/top setting. However, as PROJ_LIB can be used to load a DLL from any location then I can see why it would make sense to lock it down in the CONFIG file. 

I'll have a dig into the code to see why it sometimes uses one and sometimes the other setting - ideally we'd make a call on which has priority and make sure it works consistently.

Seth


--
web:https://geographika.net
twitter: @geographika

On Thu, Jul 7, 2022, at 1:27 AM, Jeff McKenna wrote:
> I can dream of a 'PROJ_LIB_LOCATION_PRIORITY' setting in the MapServer 
> .conf file:
>
>    1 : use .conf setting
>    2 : use setting inside your .mapfile or .include
>    3 : use setting from Web Server (Apache conf, etc.)
>    4 : use setting at the System environment level [warning to Windows 
> Server admins, this is problematic on some systems in several ways: 
> often not found, or conflicts with other FOSS4G software settings for PROJ]
>
>
> Or, the old rule applies here: 'never send an important email after 6pm' ha!
>
> Thanks for listening,
>
> -jeff
>
>
>
>
>
>
> On 2022-07-06 8:12 p.m., Jeff McKenna wrote:
>> Ok thanks Steve, but can you be more specific regarding 'local setting'? 
>>   On Windows each FOSS4G software has its own PROJ instance/version and 
>> its own PROJ_LIB variable (yes it's complete disaster, waiting to 
>> happen).  So where does the mapfile's PROJ_LIB setting, and then the 
>> System environment variable fit into your 3 ?
>> 
>> Thanks,
>> 
>> -jeff
>> 
>> 
>> 
>> On 2022-07-06 6:44 p.m., Steve Lime wrote:
>>> I understand your logic and would agree for most things. However, one 
>>> benefit of the config file is to allow admins to lock things down - 
>>> especially items like environment variable settings that tell 
>>> MapServer to load code. Hence my original response, so 1) config file, 
>>> 2) web server environment, 3) local setting.
>>>
>>> --Steve
>>>
>>> On Wed, Jul 6, 2022 at 4:05 PM Jeff McKenna 
>>> <jmckenna at gatewaygeomatics.com <mailto:jmckenna at gatewaygeomatics.com>> 
>>> wrote:
>>>
>>>     Oh don't forget PostGIS' use of that same variable (that's where I 
>>> hit
>>>     this on servers constantly).
>>>
>>>     So, my point is, that the only way we can avoid all this 
>>> "environment"
>>>     variable chaos is first always use the local mapfile setting, then 
>>> look
>>>     for .conf, and if neither has this, check the other sources.
>>>
>>>     -jeff
>>>
>>>
>>>
>>>     On 2022-07-06 6:01 p.m., Jeff McKenna wrote:
>>>      > I think we have several possibilities: environment var (system
>>>      > variable), web server environment variable (Apache config),
>>>     MapServer
>>>      > .conf, and local mapfile setting.
>>>      >
>>>      > I would say that the local mapfile should always be used first by
>>>      > MapServer, in this order:
>>>      >
>>>      > - check mapfile setting,
>>>      > - if not found, check for MapServer .conf setting,
>>>      > - if not found, check for web server setting
>>>      > - if not found, check for system environment variable
>>>      > - ...else, battle for superiority with the other PROJ_LIB
>>>     settings by
>>>      > the other FOSS4G software on that container
>>>      >
>>>      > Notes:
>>>      >
>>>      > - this shared PROJ_LIB issue is not just for MapServer, but is
>>>     faced by
>>>      > all FOSS4G projects that share this variable.  On Windows servers
>>>     now it
>>>      > is common for me to have several PROJ_LIB settings, one for each
>>>     FOSS4G
>>>      > software that depends on (depends on that PROJ version for that
>>>      > software), such as QGIS, GDAL, MapServer, etc. etc.  Meaning: f
>>>     you need
>>>      > a job run for one software, enable that specific PROJ_LIB.
>>>      >
>>>      > It's fun :)
>>>      >
>>>      > -jeff
>>>      >
>>>      >
>>>      >
>>>      >
>>>      >
>>>      > On 2022-07-06 5:49 p.m., Steve Lime wrote:
>>>      >> This could/would have been the case in past versions as well,
>>>     right?
>>>      >> So I don't think this is a new issue. IMHO I'd think central 
>>> config
>>>      >> settings should trump local settings for something like this.
>>>      >>
>>>      >> On Wed, Jul 6, 2022 at 2:40 PM Seth G <sethg at geographika.co.uk
>>>     <mailto:sethg at geographika.co.uk>
>>>      >> <mailto:sethg at geographika.co.uk
>>>     <mailto:sethg at geographika.co.uk>>> wrote:
>>>      >>
>>>      >>     Hi all,
>>>      >>
>>>      >>     Using MapServer 8.0 beta and FastCGI (on Windows) I'm
>>>     running into
>>>      >>     an issue where the PROJ_LIB setting is sometimes set by the
>>>     value in
>>>      >>     the CONFIG file and sometimes by the setting in the Mapfile:
>>>      >>
>>>      >>     CONFIG
>>>      >>        ENV
>>>      >>          MS_MAP_PATTERN "."
>>>      >>          PROJ_LIB "C:/MapServer/bin/proj7/share" #proj7
>>>      >>        END
>>>      >>     END
>>>      >>
>>>      >>     Then in a Mapfile:
>>>      >>
>>>      >>     CONFIG "PROJ_LIB" "C:/MapServer/bin/proj/SHARE" # uses proj6
>>>      >>
>>>      >>     Requests will use one PROJ setting then switch to another
>>>     seemingly
>>>      >>     at random.
>>>      >>     Should one always take precedence over the other?
>>>      >>
>>>      >>     Seth
>>>      >>
>>>      >>     --
>>>      >>     web:https://geographika.net <https://geographika.net>
>>>     <https://geographika.net <https://geographika.net>>
>>>      >>     twitter: @geographika
>>>      >
>>>
>> _______________________________________________
>> MapServer-dev mailing list
>> MapServer-dev at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
> -- 
> Jeff McKenna
> GatewayGeo: Developers of MS4W, MapServer Consulting and Training
> co-founder of FOSS4G
> http://gatewaygeo.com/
>
> _______________________________________________
> MapServer-dev mailing list
> MapServer-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev


More information about the MapServer-dev mailing list