CentOS7安装GeoServer
GeoServer
是OpenGIS Web
服务器规范的J2EE
实现,利用GeoServer
可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过GeoServer
可以比较容易的在用户之间迅速共享空间地理信息。GeoServer
是社区开源项目,可以直接通过社区网站下载。
下载地址: http://geoserver.org/download/
用户手册: http://docs.geoserver.org/sta...
- 选择
稳定版
,目前版本2.13.2。 - 选择
Platform Independent Binary
。 -
GeoServer
需要Java8
环境。Oracle JRE是首选,但OpenJDK已经充分发挥作用。 - 建议的位置将是
/usr/share/geoserver
。 - 添加环境变量
export GEOSERVER_HOME=/usr/share/geoserver
。
依赖环境
GeoServer
需要Java8
环境。Oracle JRE是首选,但OpenJDK已经充分发挥作用。
下载
- 选择
稳定版
,目前版本2.13.2。 - 选择
Platform Independent Binary
。 - 通过
http://sourceforge.net
下载发型包,要用浏览器进行下载。 - 下载后上传到服务器的
/tmp
目录。
解压到指定目录
unzip /tmp/geoserver-2.13.2-bin.zip -d /tmp
mv /tmp/geoserver-2.13.2 /usr/share/geoserver
添加环境变量
vim /etc/profile
# 追加
export GEOSERVER_HOME=/usr/share/geoserver
# 重新加载/etc/profile文件
source /etc/profile
用root用户启动
# 授权
chown -R root:root /usr/share/geoserver
配置数据目录
定义环境变量GEOSERVER_DATA_DIR
改造启动脚本
如果不改造脚本,无法通过systemctl
来启动。
vim /usr/share/geoserver/bin/startup.sh
# 在最上面引入环境变量
source /etc/profile
# 最后执行改为nohup,并将日志输入到 var/log/geoserver.log
nohup "$_RUNJAVA" $JAVA_OPTS $MARLIN_ENABLER -DGEOSERVER_DATA_DIR="$GEOSERVER_DATA_DIR" -Djava.awt.headless=true -DSTOP.PORT=8079 -DSTOP.KEY=geoserver -jar start.jar 1>/dev/null 2>/var/log/geoserver.log &
修改停止脚本
vim /usr/share/geoserver/bin/shutdown.sh
# 在最上面引入环境变量
source /etc/profile
创建服务
vim /lib/systemd/system/geoserver.service
[Unit]
Description=geoserver service
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/usr/share/geoserver/bin/startup.sh
ExecReload=
ExecStop=/usr/share/geoserver/bin/shutdown.sh
Restart=on-abort
[Install]
WantedBy=multi-user.target
浏览
http://localhost:8080/geoserver
用户名: admin
密 码: geoserver
修改密码
- 左侧导航,
Security
--Users, Groups, Roles
。 - 弹出的页面中点击
Users/Groups
标签页。
数据库
将下载的jar
和相应的jdbc
驱动,复制到/usr/share/geoserver/webapps/geoserver/WEB-INF/lib
下。
http://docs.geoserver.org/lat...
http://docs.geoserver.org/lat...
http://docs.geoserver.org/lat...
# geometry元数据表
CREATE TABLE GEOMETRY_COLUMNS(
F_TABLE_SCHEMA VARCHAR(30) NOT NULL,
F_TABLE_NAME VARCHAR(30) NOT NULL,
F_GEOMETRY_COLUMN VARCHAR(30) NOT NULL,
COORD_DIMENSION INTEGER,
SRID INTEGER NOT NULL,
TYPE VARCHAR(30) NOT NULL,
UNIQUE(F_TABLE_SCHEMA, F_TABLE_NAME, F_GEOMETRY_COLUMN),
CHECK(TYPE IN ('POINT','LINE', 'POLYGON', 'COLLECTION', 'MULTIPOINT', 'MULTILINE', 'MULTIPOLYGON', 'GEOMETRY') ));