255 lines
8.3 KiB
Markdown
255 lines
8.3 KiB
Markdown
|
---
|
|||
|
title: 安装部署
|
|||
|
date: 2020-02-24
|
|||
|
author: ac
|
|||
|
tags:
|
|||
|
- GeoServer
|
|||
|
categories:
|
|||
|
- GIS
|
|||
|
---
|
|||
|
|
|||
|
> `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.[下载安装包](http://geoserver.org/release/stable/)
|
|||
|
|
|||
|
选择稳定版的(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。
|
|||
|
|
|||
|
```powershell
|
|||
|
@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
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
可以从startup.bat脚本中看到GeoServer的启动流程:
|
|||
|
|
|||
|
1. 寻找`JAVA_HOME`
|
|||
|
2. 查找GeoServer的目录(`GEOSERVER_HOME`)
|
|||
|
3. 检查和设置数据目录(`GEOSERVER_DATA_DIR`,默认`%GEOSERVER_HOME%\data_dir"`)
|
|||
|
4. 最后启动`- jar start.jar`
|
|||
|
|
|||
|
跟start.jar启动相关的还有根目录下的start.ini文件,里面可以设置Jetty的相关配置,如端口、http连接超时时间、最大最小线程数等。
|
|||
|
|
|||
|
> 如果系统已经安装了一个GeoServer(安装包的形式)或是系统中存在`GEOSERVER_HOME`、`GEOSERVER_DATA_DIR`环境变量,再去启动一个二进制包的GeoServer,则启动的程序是二进制的GeoServer,但使用的数据目录是安装到系统里面的GeoServer,且后面的配置也是保存在数据目录中的。
|
|||
|
|
|||
|
|
|||
|
|
|||
|
在Linux 环境
|
|||
|
|
|||
|
开启:
|
|||
|
|
|||
|
让jetty在后台运行,执行./startup.sh后,如果关闭SSH客户端,服务也会关闭,所以要换种方式
|
|||
|
|
|||
|
```shell
|
|||
|
nohup ./startup.sh &
|
|||
|
```
|
|||
|
注意:#nohup:忽略输入并把输出追加到"nohup.out"
|
|||
|
nohup:无法运行命令"startup.sh":没有那个文件或目录,但GeoServer管理页依然可以访问。
|
|||
|
|
|||
|
关闭:
|
|||
|
|
|||
|
直接执行:sh shutdown.sh
|
|||
|
|
|||
|
|
|||
|
|
|||
|
### 4.登陆
|
|||
|
|
|||
|

|
|||
|
|
|||
|
GeoServer默认提供一个管理员账号:admin/geoserver。可以在Seurity/Users,Groups,Roles/UsersGroups中配置新增和删除用户。
|
|||
|
|
|||
|

|