Linux 上部署 Geoserver

Linux 上部署 Geoserver

实验环境

  1. 上传jdk到linux文件app目录(自己创建的目录)下

    1
    解压缩包 tar -zxvf jdk-8u101-linux-x64.tar.gz
  2. 配置环境变量

    1
    vi /etc/profile

在文件的在最后加入

1
2
3
#for java
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_152
export PATH=$JAVA_HOME/bin:$PATH

安装tomcat

  1. 拷贝安装包到服务上
  2. 解压 tar-zxvf /home/hadoop/apache-tomcat-8.5.5.tar.gz
  3. 启动Tomcat

    1
    2
    cd /home/hadoop/tomcat-8.5.5/bin
    ./startup.sh
  4. 停止tomcat

    1
    ./shutdown.sh
  5. 加入自启动

    1
    vi /etc/rc.d/rc.local

输入

1
2
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_152
/home/hadoop/apache-tomcat-8.5.5/bin/startup.sh start

保存退出,

  1. 执行
    1
    chmod +x /etc/rc.d/rc.local

部署Geoserver

  1. 解压geoserver-2.10-beta-war.zip压缩包。
  2. 将获取的war包放入apache-tomcat-8.5.5/webapps路径下
  3. 在 tomcat/bin/Catalina.sh文件中
    找到
    1
    2
    3
    4
    5
    -Djava.security.manager \
    -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\""\
    -Dcatalina.base="\"$CATALINA_BASE\"" \
    -Dcatalina.home="\"$CATALINA_HOME\"" \
    -Djava.io.tmpdir="\"$CATALINA_TMPDIR\""\

在每段后追加一句(一共有两段)

1
-Djava.awt.headless=true \

该步骤解决使用中无法选择数据路径的问题。

  1. 修改tomcat/bin/catalina.sh增加启动参数

    1
    CATALINA_OPTS="-Djava.awt.headless=true"
  2. 进行tomcat跨域配置
    由于跨域会导致地图无法正常显示,需要进行跨域配置。

找到apache-tomact-8.5.5/webapps/geoserver/WEB-INF/下的web.xml
加入如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!-- corsfilter config-->
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

保存,重启tomcat。如果能访问

1
localhost:8080/geoserver/web

则表示配置成功🍺