0% found this document useful (0 votes)
73 views

Install GeoServer On Linux

The document provides instructions for installing GeoServer on Ubuntu Server 18.04.1-LTS in 11 steps: 1) Download GeoServer, 2) Create folders, 3) Extract files, 4) Configure data directory, 5) Enable CORS, 6) Create startup file, 7) Make startup file executable, 8) Install native JAI and IMAGEIO libraries, 9) Configure Java settings, 10) Create init script, 11) Auto-start GeoServer as a service. It also provides an appendix with an example init script.

Uploaded by

Dcky Fm
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views

Install GeoServer On Linux

The document provides instructions for installing GeoServer on Ubuntu Server 18.04.1-LTS in 11 steps: 1) Download GeoServer, 2) Create folders, 3) Extract files, 4) Configure data directory, 5) Enable CORS, 6) Create startup file, 7) Make startup file executable, 8) Install native JAI and IMAGEIO libraries, 9) Configure Java settings, 10) Create init script, 11) Auto-start GeoServer as a service. It also provides an appendix with an example init script.

Uploaded by

Dcky Fm
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Install GeoServer on Linux

Using Ubuntu Server 18.04.1-LTS

BASIC
1. Download geoserver "Platform Independent Binary"
2. Create folder:

/opt/geoserver/

3. Create folder:

/opt/geoserver-data/X.XX.X/ (X.XX.X is geo server version)

4. Extract downloaded file


5. Copy extracted file onto /opt/geoserver
6. Copy /opt/geoserver/data_dir onto /opt/geoserver-data/X.XX.X/
7. Enable CORRS configuration, edit file
/opt/geoserver/webapps/geoserver/WEB-INF/web.xml , then uncomment cross-origin
filter:

<!-- Uncomment following filter to enable CORS -->


<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>

<!-- Uncomment following filter to enable CORS -->


<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

8. Create new file on:

/etc/default/geoserver

9. Copy paste following text:


USER=geoserver
GEOSERVER_DATA_DIR=/opt/geoserver-data/X.XX.X/
GEOSERVER_HOME=/opt/geoserver
JAVA_HOME=/PATH_TO_YOUR_JAVA
JAVA_OPTS="-Xms128m -Xmx2048m"

10. Create init scripts file: /etc/init.d/geoserver , and then copy paste text on Appendix -
Geoserver init script into that file.
11. Make that file executable:

sudo chmod +x /etc/init.d/geoserver

12. To make geoserver service auto-start, run following command:

sudo update-rc.d geoserver defaults

Installing native JAI and IMAGEIO

1. Download JAI 1.1.3, choosing the appropriate architecture:


o i586 for the 32 bit systems
o amd64 for the 64 bit ones (even if using Intel processors)

2. Estract the file into a temporary directory

3. Move jar files in the JDK/JRE lib/ext folder.

4. Move so files in the JDK/JRE lib/amd64 folder.

5. For example, on an Ubuntu 64 bit system:

$ cd /tmp
$ wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-
amd64.tar.gz && \
gunzip -c jai-1_1_3-lib-linux-amd64.tar.gz | tar xf - && \
mv /tmp/jai-1_1_3/lib/*.jar $JAVA_HOME/jre/lib/ext/ && \
mv /tmp/jai-1_1_3/lib/*.so $JAVA_HOME/jre/lib/amd64/ && \
rm /tmp/jai-1_1_3-lib-linux-amd64.tar.gz && \
rm -r /tmp/jai-1_1_3

6. Download JAI Image I/O 1.1, choosing the appropriate architecture:


o i586 for the 32 bit systems
o amd64 for the 64 bit ones (even if using Intel processors)

7. Estract the file into a temporary directory

8. Move jar files in the JDK/JRE lib/ext folder.

9. Move so files in the JDK/JRE lib/amd64 folder.

10. For example, on an Ubuntu 64 bit system:

$ cd /tmp
$ wget http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-
1_1-lib-linux-amd64.tar.gz && \
gunzip -c jai_imageio-1_1-lib-linux-amd64.tar.gz | tar xf - && \
mv /tmp/jai_imageio-1_1/lib/*.jar $JAVA_HOME/jre/lib/ext/ && \
mv /tmp/jai_imageio-1_1/lib/*.so $JAVA_HOME/jre/lib/amd64/ && \
rm /tmp/jai_imageio-1_1-lib-linux-amd64.tar.gz && \
rm -r /tmp/jai_imageio-1_1

Optional cleanup
Once the installation is complete, you may optionally remove the original JAI files from the
GeoServer instance:

jai_core-x.y.z.jar
jai_imageio-x.y.jar
jai_codec-x.y.z.jar

where x, y, and z refer to specific version numbers.


APPENDIX

1. Geoserver init script


#! /bin/sh
### BEGIN INIT INFO
# Provides: geoserver
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: GeoServer OGC server
### END INIT INFO

# Author: Lennart Jütte <[email protected]>

# Geoserver configuration - use /etc/default/geoserver to override these vars


# user that shall run GeoServer
#USER=geoserver
#GEOSERVER_DATA_DIR=/home/$USER/data_dir
#GEOSERVER_HOME=/home/$USER/geoserver

PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="GeoServer daemon"
NAME=geoserver
#JAVA_HOME=/usr/lib/jvm/java-6-sun
#JAVA_OPTS="-Xms128m -Xmx512m"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Read configuration variable file if it is present


[ -r /etc/default/$NAME ] && . /etc/default/$NAME

if [ -z $MARLIN_JAR]; then
MARLIN_JAR=`find $GEOSERVER_HOME/webapps -name "marlin*.jar" | head -1`
fi
MARLIN_ENABLER="-Xbootclasspath/a:$MARLIN_JAR -
Dsun.java2d.renderer=org.marlin.pisces.MarlinRenderingEngine"

DAEMON="$JAVA_HOME/bin/java"
DAEMON_ARGS="$JAVA_OPTS $MARLIN_ENABLER $DEBUG_OPTS -
DGEOSERVER_DATA_DIR=$GEOSERVER_DATA_DIR -Djava.awt.headless=true -jar start.jar"

# Load the VERBOSE setting and other rcS variables


VERBOSE=yes
[ -f /etc/default/rcS ] && . /etc/default/rcS

# Define LSB log_* functions.


# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

do_start(){

# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started

start-stop-daemon --start --pidfile $PIDFILE --make-pidfile \


--chuid $USER --chdir $GEOSERVER_HOME \
-b --test --exec $DAEMON -- $DAEMON_ARGS > /dev/null \
|| return 1

start-stop-daemon --start --pidfile $PIDFILE --make-pidfile \


--chuid $USER --chdir $GEOSERVER_HOME \
-b --exec $DAEMON -- $DAEMON_ARGS \
|| return 2
}

do_stop(){

# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred

start-stop-daemon --stop --pidfile $PIDFILE \


--user $USER \
--retry=TERM/30/KILL/5

RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2

# Many daemons don't delete their pidfiles when they exit.


rm -f $PIDFILE
return "$RETVAL"

case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
[ "$VERBOSE" != no ] && log_daemon_msg "JAVA_HOME location: $JAVA_HOME"
[ "$VERBOSE" != no ] && log_daemon_msg "GEOSERVER_DATA_DIR location:
$GEOSERVER_DATA_DIR"
[ "$VERBOSE" != no ] && log_daemon_msg "MARLIN: $MARLIN_ENABLER"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac

You might also like