一、环境
JDK:Java1.8.0_361
TomcT:Apache Tomcat/9.0.33
GeoServer:geoserver-2.11.0
二、安装部署
1.确保在系统上安装了Java Runtime Environment(JRE)。GeoServer需要Java 8或Java 11环境,可从OpenJDK,AdoptOpenJDK获得或由您的OS发行版提供。
[root@localhost ~]# yum install java-1.8.0-openjdk # 输入y
[root@localhost ~]# java -version
java version "1.8.0_361"
Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode
2、确保安装了Tomcat并可以访问
我的安装路径是:/opt/tomcat/apache-tomcat-9.0.33
访问状态如下:
3、下载GeoServer并安装
geoserver-2.11.0-war.zip
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.11.0/geoserver-2.11.0-war.zip #由于时间过长最好提前下载好,
3、解压geoserver-2.11.0-war.zip后得到war包
放入/opt/tomcat/apache-tomcat-9.0.33/webapps路径下(这是关键一步,否则会报错)
[root@localhost webapps]# unzip geoserver-2.11.0-war.zip geoserver.war
Archive: geoserver-2.11.0-war.zip
inflating: geoserver.war
4、编辑vim /opt/tomcat/apache-tomcat-9.0.33/bin/Catalina.sh文件
找到 -Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\""\
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\""\
在每段后追加一句
-Djava.awt.headless=true \
该步骤解决使用中无法选择数据路径的问题。
5、启动tomcat服务
[root@localhost bin]# cd /opt/tomcat/apache-tomcat-9.0.33/bin
[root@localhost bin]# systemctl restart tomcat
三、访问GeoServer
http://服务器IP地址:8080/geoserver #如果没有打开请关闭防火墙 我的http://192.168.65.132:8080/geoserver
默认的用户名 :admin 和 密码:geoserver 登录后,进入主界面
四、可能出现的问题
1、8080无法访问的问题,最大可能出现的原因是防火墙端口的开放问题,解决办法如下:
打开防火墙:
systemctl start firewalld.service
关闭
systemctl stop firewalld
查看端口号开放状态:
firewall-cmd --query-port=8080/tcp
添加开放测试端口:
firewall-cmd --add-port=8080/tcp
查看所有开放端口:
firewall-cmd --list-all
添加永久开放端口:
firewall-cmd --zone=public --permanent --add-port=8080/tcp
再次查看所有开放端口:
firewall-cmd --list-all
另外,我们还可以查看配置文件,对外开放端口配置文件在/etc/firewalld/zones目录下。
先 cd /etc/firewalld/zones
再 vi public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="mdns"/>
<service name="dhcpv6-client"/>
<service name="cockpit"/>
<port port="3306" protocol="tcp"/>
<port port="8080" protocol="tcp"/>
</zone>
2、Linux:
修改Tomcat的配置文件,在catalina.sh文件和setclasspath.sh文件开头的空白处加上如下两句(指定JDK):
export JAVA_HOME=/usr/local/java/jdk1.6.0_18
export JRE_HOME=/usr/local/java/jdk1.6.0_18/jre
注意:目录中的D盘及jdk目录请替换成真实环境的地址;
/usr/sbin/tomcat /etc/tomcat /usr/libexec/tomcat /usr/share/tomcat
export JAVA_HOME=/usr/local/jdk/jdk8
export JAVA_HOME=/usr/local/jdk/jdk8/jre
3、添加环境变量以保存GeoServer的位置
[root@localhost ~]# echo "export GEOSERVER_HOME=/usr/share/geoserver" >> /etc/profile
[root@localhost ~]# source /etc/profile # 刷新
[root@localhost ~]# cat /etc/profile | tail -2 # 查询环境变量
4、使自己成为geoserver文件夹的所有者
[root@localhost ~]# chown -R root:root /usr/share/geoserver/
[root@localhost ~]# ll /usr/share/geoserver/
总用量 264
drwxr-xr-x 2 root root 82 9月 21 2020 bin
drwxr-xr-x 14 root root 313 9月 21 2020 data_dir
drwxr-xr-x 2 root root 276 5月 19 2020 etc
drwxr-xr-x 2 root root 4096 9月 21 2020 lib
drwxr-xr-x 2 root root 98 9月 21 2020 license
drwxr-xr-x 2 root root 24 5月 19 2020 logs
drwxr-xr-x 2 root root 173 5月 19 2020 modules
-rw-r--r-- 1 root root 85824 9月 2 2020 NOTICE.md
-rw-r--r-- 1 root root 423 5月 19 2020 README.txt
drwxr-xr-x 2 root root 30 5月 19 2020 resources
-rw-r--r-- 1 root root 3945 9月 2 2020 RUNNING.txt
-rw-r--r-- 1 root root 1971 5月 19 2020 start.ini
-rw-r--r-- 1 root root 160629 5月 19 2020 start.jar
-rw-r--r-- 1 root root 333 9月 21 2020 VERSION.txt
drwxr-xr-x 3 root root 23 9月 21 2020 webapps
5、通过进入目录geoserver/bin并执行startup.sh脚本来启动GeoServer
[root@localhost ~]# cd /usr/share/geoserver/bin/
[root@localhost bin]# ls
shutdown.bat shutdown.sh startup.bat startup.sh
[root@localhost bin]# ./startup.sh #启动GeoServer
GEOSERVER DATA DIR is /usr/share/geoserver/data_dir
2023-03-08 11:42:22.079:INFO::main: Logging initialized @648ms to org.eclipse.jetty.util.log.StdErrLog
2023-03-08 11:42:22.441:WARN:oejx.XmlConfiguration:main: Property 'jetty.port' is deprecated, use 'jetty.http.port' instead
2023-03-08 11:42:22.442:WARN:oejx.XmlConfiguration:main: Property 'http.timeout' is deprecated, use 'jetty.http.idleTimeout' instead
2023-03-08 11:42:22.461:INFO:oejs.Server:main: jetty-9.4.18.v20190429; built: 2019-04-29T20:42:08.989Z; git: e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 1.8.0_361-b09
2023-03-08 11:42:22.502:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///usr/share/geoserver/webapps/] at interval 1
。。。
//执行geoserver 启动脚本
//此处需要注意的是geoserver启动后。会一直处于程序窗口无法退出。需要重新打开一个连接centos的窗口。
ss -antulp | grep :8080 //新开命令窗口查询,因为执行start.sh脚本没放入后台,会一直占用终端窗口
tcp LISTEN 0 100 *:8080 *:* users:(("java",pid=5518,fd=59))
要关闭GeoServer,请关闭永久命令行窗口,或运行bin目录中的cd /usr/share/geoserver/bin/./shutdown.sh
文件。
6、进行tomcat跨域配置
由于跨域会导致地图无法正常显示,需要进行跨域配置。
在/opt/tomcat/apache-tomcat-9.0.33/webapps/root目录中找到/opt/tomcat/apache-tomcat-9.0.33/webapps/ROOT/WEB-INF/下的web.xml
加入如下代码:
<!-- 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。即可解决跨域访问的问题
五、卸载
如果正在运行,请先停止GeoServer。
删除安装GeoServer的目录。