Ubuntu安装 GeoServer 并设置自启、远程访问
Ubuntu安装 GeoServer 并设置自启、远程访问
GeoServer 是一个开源的地理空间服务器,用于共享地理空间数据。其基于 Java 开发,遵循 OGC(开放地理空间联盟)标准,支持多种地理空间数据格式;可以将地理空间数据(如矢量数据、栅格数据)发布为 Web 服务;并且其提供了一个基于Web的用户界面,方便用户进行数据发布、服务配置和管理操作,无需复杂的命令行操作。官网介绍了详细的安装,大家也可以直接参考官网教程:https://docs.geoserver.org/latest/en/user/installation/index.html#installation。安装笔记包括了软件安装、设置服务开机启动、设置远程访问等内容。
(1)下载安装包
下载安装包前,要确保安装了 Java 运行环境,GeoServer 需要Java 11或Java 17环境。GeoServer官网提供了二进制分发版、 Web 应用程序存档(WAR)版、Windows安装包,我这里尝试使用二进制分发版在ubuntu中进行安装,可以使用 wget 命令进行下载安装包,可以直接通过桌面环境中浏览器下载。
wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.26.1/geoserver-2.26.1-bin.zip/download
(2)解压安装包
接下来,解压安装包到路径:/opt/gerserver,
cd "/root/Downloads"
sudo unzip geoserver-2.26.1-bin.zip -d /opt/geoserver
(3)启动与关闭GeoServer
进入 GeoServer 的安装目录中的 bin 子目录,执行启动脚本。
cd /opt/geoserver/bin
sudo ./startup.sh
如果这里报如下错误,那就是JAVA没有设置好,可能安装的版本不对或者默认的JAVA版本不对。我一开始报错,因为在安装Udig过程中,使用 update-java-alternatives 设置了JAVA8为全局默认的JAVA版本,所以我即使安装了JAVA11也报错。
GEOSERVER_HOME environment variable not found, using current
location. If not set then running this script from other
directories will not work in the future.
GEOSERVER DATA DIR is /opt/geoserver/data_dir
Unrecognized option: --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit
我们可以将JAVA全局默认的版本改回JAVA11,我这里修改了GeoServer的启动脚本,直接指定了JAVA路径;并且直接显式指定了GEOSERVER_HOME。
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
export GEOSERVER_HOME=/opt/geoserver
# 打印验证一下
echo $GEOSERVER_HOME
echo $JAVA_HOME
java -version
如果是经常要使用GeoServer,可以使用 systemd 服务文件来配置 GeoServer 直接默认自动启动。新建并编辑文件,可以使用 vim 或者 nano :
sudo nano /etc/systemd/system/geoserver.service
然后将如下代码复制到文件中,其中的注释可以删掉。
[Unit]
Description=GeoServer #服务的描述。
After=network.target #指定在 network.target 启动后启动 GeoServer
[Service]
Type=simple #服务类型,simple 表示直接执行 ExecStart
User=root #运行GeoServer的用户
ExecStart=/opt/geoserver/bin/startup.sh #启动和停止的脚本路径
ExecStop=/opt/geoserver/bin/shutdown.sh
Restart=on-failure #在失败时自动重启服务
[Install]
WantedBy=multi-user.target #指定该服务在多用户目标下启动
然后接下来执行以下命令启用并启动服务:
# 重新加载 systemd 配置
sudo systemctl daemon-reload
#启用服务,使其在系统启动时自动运行
sudo systemctl enable geoserver.service
#启动服务,以测试配置是否正确
sudo systemctl start geoserver.service
#检查服务状态
sudo systemctl status geoserver.service
服务状态显示:Active: active (running) 那就说明OK了。
如果要关闭GeoServer,可以直接在当前窗口使用Ctrl+C停止。如果在其他命令行窗口下需要先到 /opt/geoserver/bin 目录,再执行:
sudo ./shutdown.sh
脚本文件。
(4)访问GeoServer、修改与重置密码
打开浏览器,输入 http://localhost:8080/geoserver ,可以看到 GeoServer 的 Web 管理界面。首次访问时,需要使用默认的用户名和密码登录,默认用户名是 admin ,默认密码是 geoserver 。
登录后,可以在左侧菜单栏中,修改密码等。
如果忘记密码,就进入路径:
/opt/geoserver/data_dir/security/usergroup/default/users.xml
,将里面重置显式设置为:
,再使用新密码登录即可。
(5)设置远程访问
远程访问安装在云服务器上的geoserver,首先要保证云服务器添加了8080端口的安全组规则;
如果设置了防火墙的话,要允许8080端口通过防火墙,以ufw防火墙为例,代码如下:
sudo ufw allow 8080
这样就可以在本地浏览器输入网址:
http://云服务器公网IP地址:8080/geoserver
来访问云服务器。
此外,大家也可以使用Docker安装和运行GeoServer。