设置数据目录位置

设置geoserver数据目录位置的过程取决于geoserver安装的类型。按照以下特定于目标平台的说明进行操作。

备注

如果未显式设置GeoServer数据目录的位置,则 data_dir 默认情况下,将在GeoServer安装的根目录下选择。

Windows

在Windows平台上,地理服务器数据目录的位置由 GEOSERVER_DATA_DIR 环境变量。

要设置环境变量:

  1. 打开系统控制面板。

  2. 点击 Advanced System Properties .

  3. 点击 Environment Variables .

  4. 单击 New 按钮并创建一个名为 GEOSERVER_DATA_DIR 并将其设置到所需位置。

    ../_images/envvar_win.png

    在Windows上设置环境变量

Linux系统

在Linux平台上,地理服务器数据目录的位置由 GEOSERVER_DATA_DIR 环境变量。可以使用以下命令(在终端中)设置变量:

export GEOSERVER_DATA_DIR=/var/lib/geoserver_data

要使变量持久化,请将命令放置在 .bash_profile.bashrc 文件。确保对运行GeoServer的用户执行此操作。

Mac OS X

对于Mac OS X上的geoserver二进制安装,数据目录的设置方式与Linux相同。

对于Mac OS X安装,设置 GEOSERVER_DATA_DIR 环境变量到所需的目录位置。见 this page 有关如何在Mac OS X中设置环境变量的详细信息。

档案文件

在servlet容器内运行geoserver war时,可以通过多种方式指定数据目录。建议的方法是设置 servlet上下文参数 . 另一种选择是设置 Java系统特性 .

上下文参数

要使用servlet上下文参数指定数据目录,请创建以下 <context-param> 元素在 WEB-INF/web.xml GeoServer应用程序的文件:

<web-app>
  ...
  <context-param>
    <param-name>GEOSERVER_DATA_DIR</param-name>
    <param-value>/var/lib/geoserver_data</param-value>
  </context-param>
  ...
</web-app>

Java系统特性

还可以用Java系统属性指定数据目录位置。这种方法在升级期间很有用,因为它避免了每次升级后都需要设置数据目录。

警告

使用Java系统属性通常为在servlet容器中运行的所有应用程序设置属性,而不仅仅是GeoServer。

设置Java系统属性的方法依赖于servlet容器:

  • 为了 雄猫 ,编辑文件 bin/setclasspath.sh 在Tomcat安装的根目录下。指定 GEOSERVER_DATA_DIR 通过设置 CATALINA_OPTS 变量:

    CATALINA_OPTS="-DGEOSERVER_DATA_DIR=/var/lib/geoserver_data"
    
  • 为了 玻璃鱼 ,编辑文件 domains/<<domain>>/config/domain.xml 在Glassfish装置的根部下面 <<domain>> 指部署GeoServer web应用程序的域。添加 <jvm-options> 元素内部 <java-config> 元素:

    ...
    <java-config>
       ...
      <jvm-options>-DGEOSERVER_DATA_DIR=/var/lib/geoserver_data</jvm-options>
    </java-config>
    ...
    

要求文件存在

如果数据目录位于网络文件系统上,出于安全原因,可能需要在geoserver启动之前要求一个或多个文件或目录存在,以防止geoserver在数据目录为空时掉入默认的不安全配置,因为网络资源的丢失。

要要求文件或目录存在,请使用上面的任何方法设置 GEOSERVER_REQUIRE_FILE .不要指定装入点,因为如果网络文件系统不可用,这仍然存在;请指定一个文件或目录 里面 网络挂载。例如:

环境变量:

export GEOSERVER_REQUIRE_FILE=/mnt/server/geoserver_data/global.xml

servlet上下文参数:

<web-app>
  ...
  <context-param>
    <param-name>GEOSERVER_REQUIRE_FILE</param-name>
    <param-value>/mnt/server/geoserver_data/global.xml</param-value>
  </context-param>
  ...
</web-app>

Java系统属性:

CATALINA_OPTS="-DGEOSERVER_REQUIRE_FILE=/mnt/server/geoserver_data/global.xml"

多个文件

若要指定必须存在的多个文件或目录,请使用路径分隔符将它们分隔开 (: 在Linux上, ; 在Windows上):

环境变量:

export GEOSERVER_REQUIRE_FILE=/mnt/server/geoserver_data/global.xml:/mnt/server/data

servlet上下文参数:

<web-app>
  ...
  <context-param>
    <param-name>GEOSERVER_REQUIRE_FILE</param-name>
    <param-value>/mnt/server/geoserver_data/global.xml:/mnt/server/data</param-value>
  </context-param>
  ...
</web-app>

Java系统属性:

CATALINA_OPTS="-DGEOSERVER_REQUIRE_FILE=/mnt/server/geoserver_data/global.xml:/mnt/server/data"