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 >>> <[email protected] <mailto:[email protected]>> >>> 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 <[email protected] >>> <mailto:[email protected]> >>> >> <mailto:[email protected] >>> <mailto:[email protected]>>> 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 >> [email protected] >> 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 > [email protected] > https://lists.osgeo.org/mailman/listinfo/mapserver-dev _______________________________________________ MapServer-dev mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/mapserver-dev
