银河麒麟V10 SP3下安装部署GeoServer地图服务
一、环境
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
访问状态如下:
安装方法:https://www.cnblogs.com/liunaixu/p/17148229.html
3、下载GeoServer并安装
1、安装wget下载工具
[root@localhost ~]# yum -y install wget 上次元数据过期检查:1:53:16 前,执行于 2023年03月08日 星期三 08时58分11秒。 软件包 wget-1.20.3-3.ky10.x86_64 已安装。 依赖关系解决。 无需任何处理。 完毕!
2、下载geoserver-2.11.0-war.zip
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.11.0/geoserver-2.11.0-war.zip #由于时间过长最好提前下载好, 把下载好的geoserver-2.11.0-war.zip传到银河麒麟系统的/opt/tomcat/apache-tomcat-9.0.33/webapps文件夹下
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
source /etc/profile # 刷新
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的窗口。
[root@localhost ~]# 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的目录。