GeoServer
是用Java编写的开放源代码软件服务器,允许用户共享和编辑地理空间数据。GeoServer
是参考开放地理空间联盟(OGC
)的Web Feature Service(WFS)、Web Coverage Service(WCS)、Web Map Service(WMS)等标准来实现的。
# 安装部署
Geoserver 官方的用户手册:https://docs.geoserver.org/latest/en/user/installation/win_installer.html
# 1.安装Java环境
因为GeoServer是用Java编写的,所以需要Java环境(jre),安装JDK 8。
java 9 目前还不支持
GeoServer的速度在很大程度上取决于所选的Java Runtime Environment(JRE)。最新版本的GeoServer已通过Oracle JRE和OpenJDK进行了测试。除了经过测试的实现之外,其他实现也可能会正常工作,但通常不建议这样做。
经测试:
- Java 11和Java 8-GeoServer 2.15.x及更高版本(已测试OpenJDK)
- Java 8-GeoServer 2.9.x及更高版本(已测试OpenJDK和Oracle JRE)
- Java 7-GeoServer 2.6.x至GeoServer 2.8.x(已测试OpenJDK和Oracle JRE)
- Java 6-GeoServer 2.3.x至GeoServer 2.5.x(已测试Oracle JRE)
- Java 5-GeoServer 2.2.x和更低版本(已通过Sun JRE测试)
为了获得最佳性能,建议使用Oracle JRE 8(也称为JRE 1.8)。
从GeoServer 2.0开始,Java运行时环境(JRE)足以运行GeoServer。GeoServer不再需要Java开发工具包(JDK)。
# 2.下载安装包 (opens new window)
选择稳定版的(stable)
可以看到该版本提供的安装方式只有,平台独立的二进制包和war包形式的文件,都是免安装的。
- 平台独立二进制包:是捆绑在Jetty中的GeoServer Web应用程序。
- war包:作为现有servlet容器(例如Tomcat)的一部分运行。
在较旧的版本中还提供Windows或MacOS平台的安装文件。直接双击一路下一步完成安装,这样以安装文件的形式安装的通常会在系统环境变量中增加环境变量GEOSERVER_HOME
、GEOSERVER_DATA_DIR
。同时GeoServer会集成到Windows服务中,这样做的好处是更易于管理。
# 3. 启动分析
我们选择二进制包的版本,解压后进入bin目录:
在windows环境中双击startup.bat
和shutdown.bat
文件就可以启动和关闭GeoServer;
在Linux环境执行sh startup.sh
就可以启动GeoServer。
@echo off
rem -----------------------------------------------------------------------------
rem Startup Script for GeoServer
rem -----------------------------------------------------------------------------
cls
echo Welcome to GeoServer!
echo.
set error=0
rem JAVA_HOME not defined
if "%JAVA_HOME%" == "" goto trySystemJava
rem JAVA_HOME defined incorrectly
if not exist "%JAVA_HOME%\bin\java.exe" goto badJava
rem Setup the java command and move on
set RUN_JAVA=%JAVA_HOME%\bin\java
echo JAVA_HOME: %JAVA_HOME%
echo.
:checkGeoServerHome
rem GEOSERVER_HOME not defined
if "%GEOSERVER_HOME%" == "" goto noHome
rem GEOSERVER_HOME defined incorrectly
if not exist "%GEOSERVER_HOME%\bin\startup.bat" goto badHome
goto checkDataDir
:trySystemJava
echo The JAVA_HOME environment variable is not defined, trying to use System Java
for /f %%i in ('where java') do set RUN_JAVA=%%i
rem --- we might be on amd64 having only x86 jre installed ---
if "%RUN_JAVA%"=="" if DEFINED ProgramFiles(x86) if NOT "%PROCESSOR_ARCHITECTURE%"=="x86" (
rem --- restart the batch in x86 mode---
echo Warning: No java interpreter found in path.
echo Retry using Wow64 filesystem [32bit environment] redirection.
%SystemRoot%\SysWOW64\cmd.exe /c %0 %*
exit /b %ERRORLEVEL%
)
if "%RUN_JAVA%"=="" goto noJava
echo Using System Java at:
echo %RUN_JAVA%
echo.
goto checkGeoServerHome
:noJava
echo The JAVA_HOME environment variable is not defined, and no Java executable could be found.
goto JavaFail
:badJava
echo The JAVA_HOME environment variable is not defined correctly.
goto JavaFail
:JavaFail
echo Please install Java or, if present but not in the path, set this environment variable via the following command:
echo set JAVA_HOME=[path to Java]
echo Example:
echo set JAVA_HOME=C:\Program Files\Java\jdk8
echo.
set error=1
goto end
:noHome
if exist ..\start.jar goto noHomeOK
echo The GEOSERVER_HOME environment variable is not defined.
goto HomeFail
:badHome
if exist ..\start.jar goto badHomeOK
echo The GEOSERVER_HOME environment variable is not defined correctly.
goto HomeFail
:HomeFail
echo This environment variable is needed to run this program.
echo.
echo Set this environment variable via the following command:
echo set GEOSERVER_HOME=[path to GeoServer]
echo Example:
echo set GEOSERVER_HOME=C:\Program Files\GeoServer
echo.
set error=1
goto end
:noHomeOK
echo The GEOSERVER_HOME environment variable is not defined.
goto setHome
:badHomeOK
echo The GEOSERVER_HOME environment variable is not defined correctly.
goto setHome
:setHome
echo Temporarily setting GEOSERVER_HOME to the following directory:
cd ..
set GEOSERVER_HOME=%CD%
echo %GEOSERVER_HOME%
echo.
goto checkDataDir
:checkDataDir
rem GEOSERVER_DATA_DIR not defined
if "%GEOSERVER_DATA_DIR%" == "" goto noDataDir
goto setMarlinRenderer
:noDataDir
rem if GEOSERVER_DATA_DIR is not defined then use GEOSERVER_HOME/data_dir/
if exist "%GEOSERVER_HOME%\data_dir" goto setDataDir
echo No valid GeoServer data directory could be located.
echo Please set the GEOSERVER_DATA_DIR environment variable.
echo.
echo Set this environment variable via the following command:
echo set GEOSERVER_DATA_DIR=[path to data_dir]
echo Example:
echo set GEOSERVER_DATA_DIR=C:\Program Files\GeoServer\data_dir
echo.
set error=1
goto end
:setDataDir
set GEOSERVER_DATA_DIR=%GEOSERVER_HOME%\data_dir
echo The GEOSERVER_DATA_DIR environment variable is not defined correctly.
echo Temporarily setting GEOSERVER_DATA_DIR to the following directory:
echo %GEOSERVER_DATA_DIR%
echo.
goto setMarlinRenderer
:setMarlinRenderer
cd "%GEOSERVER_HOME%"
for /f "delims=" %%i in ('dir /b/s "%GEOSERVER_HOME%\webapps\geoserver\WEB-INF\lib\marlin*.jar"') do set MARLIN_JAR=%%i
if "%MARLIN_JAR%" == "" (
echo Marlin renderer jar not found
goto run
)
set MARLIN_ENABLER=-Xbootclasspath/a:"%MARLIN_JAR%" -Dsun.java2d.renderer=org.marlin.pisces.MarlinRenderingEngine
set JAVA_OPTS=%JAVA_OPTS% %MARLIN_ENABLER%
goto run
:run
cd "%GEOSERVER_HOME%"
echo Please wait while loading GeoServer...
echo.
"%RUN_JAVA%" %JAVA_OPTS% -DGEOSERVER_DATA_DIR="%GEOSERVER_DATA_DIR%" -Djava.awt.headless=true -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -jar start.jar
cd bin
goto end
:end
if %error% == 1 echo Startup of GeoServer was unsuccessful.
echo.
pause
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
可以从startup.bat脚本中看到GeoServer的启动流程:
- 寻找
JAVA_HOME
- 查找GeoServer的目录(
GEOSERVER_HOME
) - 检查和设置数据目录(
GEOSERVER_DATA_DIR
,默认%GEOSERVER_HOME%\data_dir"
) - 最后启动
- jar start.jar
跟start.jar启动相关的还有根目录下的start.ini文件,里面可以设置Jetty的相关配置,如端口、http连接超时时间、最大最小线程数等。
如果系统已经安装了一个GeoServer(安装包的形式)或是系统中存在
GEOSERVER_HOME
、GEOSERVER_DATA_DIR
环境变量,再去启动一个二进制包的GeoServer,则启动的程序是二进制的GeoServer,但使用的数据目录是安装到系统里面的GeoServer,且后面的配置也是保存在数据目录中的。
在Linux 环境
开启:
让jetty在后台运行,执行./startup.sh后,如果关闭SSH客户端,服务也会关闭,所以要换种方式
nohup ./startup.sh &
注意:#nohup:忽略输入并把输出追加到"nohup.out" nohup:无法运行命令"startup.sh":没有那个文件或目录,但GeoServer管理页依然可以访问。
关闭:
直接执行:sh shutdown.sh
# 4.登陆
GeoServer默认提供一个管理员账号:admin/geoserver。可以在Seurity/Users,Groups,Roles/UsersGroups中配置新增和删除用户。