环境变量¶
背景¶
许多环境变量可用于控制MapServer的行为或指定某些资源的位置。
所有可能的MapServer环境变量列表¶
- CURL_CA_BUNDLE
5.4.1 新版功能.
用于指定在WMS/WFS客户端层中使用HTTPS连接时Curl要使用的证书颁发机构(CA)捆绑文件的位置。默认情况下,CURL与其自己的CA包捆绑在一起,因此不需要此变量,除非您有一个特殊的安装:
export CURL_CA_BUNDLE=/path/to/ca-bundle.crt
- MS_DEBUGLEVEL
5.0 新版功能.
默认设置 DEBUG 级别值可以使用 MS_DEBUGLEVEL 环境变量与 MS_ERRORFILE 变量。
设置后,在映射文件解析器加载所有映射和层对象时,该值将用作它们的默认调试级别值。此选项还为位于map或Layer对象的上下文之外的任何msDebug()调用设置调试级别,例如,对于与加载map之前的初始化相关的调试语句。如果一个 DEBUG 值也是在某些地图或层对象的映射文件中指定的,则本地值(在映射文件中)优先于环境变量的值。
例如,当通过在映射加载之前启用计时/调试输出来调优应用程序时,该选项非常有用,以捕获完整的进程初始化和映射加载时间。
参见
- MS_ENCRYPTION_KEY
4.10 新版功能.
参见
- MS_ERRORFILE
这个 MS_ERRORFILE 环境变量指定日志记录/调试输出的位置,可能的值可以是磁盘上的文件路径,也可以是以下特殊值之一:
“stderr”将输出发送到标准错误。在apache stderr下是apache error_log文件。在IIS中,stderr被设置为stdout,因此不鼓励使用它。对于IIS,建议改为直接输出到磁盘上的文件。
“stdout”将输出发送到标准输出,并与MapServer的其余输出相结合。
“windowsdebug”将输出发送到Windows OutputDebugStringAPI,允许使用像Sysinterals调试视图这样的外部程序来显示调试输出。
可以指定 MS_ERRORFILE 作为环境变量或通过 CONFIG 映射文件中的指令::
CONFIG "MS_ERRORFILE" "/tmp/mapserver.log"
或:
CONFIG "MS_ERRORFILE" "stderr"
如果两个 MS_ERRORFILE 设置了环境变量,并且一个 CONFIG MS_ERRORFILE 已设置,则 CONFIG 指令优先。
如果 MS_ERRORFILE 未设置,则禁用错误/调试日志记录。在分析映射文件期间,错误/调试日志记录可能仅在 MS_ERRORFILE 指令已被解析。
参见
- MS_MAP_NO_PATH
5.4 新版功能.
这个 MS_MAP_NO_PATH 可以将环境变量设置为任何值,以禁止在map=...中使用显式路径URL参数。设置 MS_MAP_NO_PATH 至 任何价值 强制在mapserv CGI URL中使用map=<env_ariable_name>机制。
如果未设置此变量,则不会发生任何变化,并且mapserv CGI仍通过map=...接受显式文件路径。URL参数。
例如,set set MS_MAP_NOPATH 以及ApacheHTTPd.conf中的一些映射文件路径::
SetEnv MS_MAP_NO_PATH "foo" SetEnv MY_MAPFILE "/opt/mapserver/map1/mymapfile.map"
然后调用mapserv cgi必须使用环境变量的map=...参数::
http://localhost/cgi-bin/mapserv?map=MY_MAPFILE&mode=...
- MS_MAPFILE
映射=...时要使用的映射文件。未提供URL参数。
还可以使用环境变量名作为map=...的值。URL参数。此环境变量的值将用作映射文件路径::
map=ENV_VAR
- MS_MAPFILE_PATTERN
MS_MAPFILE_PATTERN 可用于覆盖用于验证映射文件文件扩展名的默认正则表达式。
此变量的默认值为::
MS_MAPFILE_PATTERN='\.map$'
- MS_MAP_BAD_PATTERN
7.6.3 新版功能.
这个 MS_MAP_BAD_PATTERN 环境变量可用于指定要捕获的正则表达式,并且不允许在任何传递到map=中的mapserv cgi的映射文件路径中出现有问题的字符序列...URL参数。如果值匹配,则会生成错误。默认情况下,所有MapServer安装(从7.6.3开始)都为设置硬编码值 MS_MAP_BAD_PATTERN 的:
[/\\]{2}|[/\\]?\\.+[/\\]|,
因此,它不允许在映射值中使用“/../”或“//”。
对于Windows用户,MS4W使用PCRE正则表达式库(它需要略有不同的正则表达式语法),因此所有未来的MS4W版本都将包含以下默认设置 MS_MAP_BAD_PATTERN 已启用(不允许映射值中有“/../”或“//”):
[\/\\\\]{2}|[\/\\\\]?\.{2,}[\/\\\\]|,
有关Windows的详细信息,请参阅 Securing your MS4W Installation
参见
限制 Mapfile 访问 关联(&A) Pull Request 对于7.6.3版本
- MS_MAP_PATTERN
5.4 新版功能.
这个 MS_MAP_PATTERN 环境变量可用于指定一个正则表达式,该正则表达式必须与在map=...中传递到mapserv CGI的所有映射文件路径匹配。URL参数。
如果 MS_MAP_PATTERN 未设置,则可以加载任何.map文件。
可以使用ApacheSetEnv指令将映射文件限制到特定目录和子目录。
Unix用户 可以在Apache中设置以下表达式,以将映射文件限制为 /opt/mapserver 目录和子目录:
SetEnv MS_MAP_PATTERN "^\/opt\/mapserver\/([^\.][_A-Za-z0-9\-\.]+\/{1})*([_A-Za-z0-9\-\.]+\.(map))$"
Windows Apache/MS4W users 我可以在Apacheconf文件中设置以下表达式,以将可能的map=路径限制为公共 C:/ms4w/apps/ 目录(所有MS4W Mapfile 和应用程序所在的目录),允许编码的URL,允许“。或MAP=路径中的“_”或“-”,但不允许“..”目录遍历:
SetEnv MS_MAP_PATTERN "^(C:)?\/ms4w\/apps\/((?!\.{2})[_A-Za-z0-9\-\.]+\/{1})*([_A-Za-z0-9\-\.]+\.(map))$"
备注
MS4W用户可以在https://ms4w.com/README_INSTALL.html#securing-your-ms4w-installation上查看具体的示例
- MS_MODE
模式的默认值=...URL参数。设置模式=...在URL中优先于环境变量。
- MS_OPENLAYERS_JS_URL
OpenLayers Java脚本库的URL(可在使用ImageType应用程序/OpenLayers测试WMS服务时使用),例如::
http://openlayers.org/api/OpenLayers.js
- MS_TEMPPATH
设置 WEB TEMPPATH 。
6.0 新版功能.
- MS_XMLMAPFILE_XSLT
用于启用XML映射文件支持。指向用于XML->文本映射文件转换的XSLT的位置。
参见
- PROJ_LIB
这个 PROJ_LIB 环境变量或 CONFIG 指令可用于指定proj数据文件所在的目录(包括“proj.db”文件,或较早版本的proj版本中的“epsg”文件),如果它们不在proj期望它们的默认目录中。
备注
有关可能使用的项目变量的完整列表,请参阅 official list 。
参见
Setting the location of the epsg file 在……里面 错误 。