Предварительно качаем и устанавливаем OpenJDK инструкций в инете уйма.
Качаем сам геосервер с оф сайта. Я создал пользователя geoserver и распаковал геосервер в домашний каталог.
В корне каталога геосервера есть файл start.ini где можно сконфигурировать сам геосервер, например я изменил номер порта
Не забываем открыть порт в FirewallD.
Далее необходимо создать файл .profile в каталоге ~/ (домашнем), в этом файле должна быть ссылка на расположение геосервера
Код |
---|
export GEOSERVER_HOME=/home/geoserver/geoserver-2.14.1 |
Далее нам надо создать файлы:- /etc/sysconfig/geoserver - файл с переменными окружения, нужными для запуска java приложения- /etc/systemd/system/geoserver.service - systemd unit для запуска сервера, там же описан пользователь из под которого запускается сервис, ограничение на использование оперативной памяти, этап запуска и прочая информация
- Ручной запуск systemctl start geoserver
- Ручной останов systemctl stop geoserver
- Вкл/Выкл запуска при старте системы systemctl disable geoserver
Более подробная информация по использованию менеджера инициализации в справке по systemd, перепечатывать ее тут смысла особого нет.
Содержание /etc/sysconfig/geoserver
Код |
---|
USER=geoserver
JAVA_HOME=/usr
JAVA_OPTS="-Xms128m -Xmx512m"
GEOSERVER_HOME="/home/${USER}/geoserver-2.14.1/"
GEOSERVER_DATA_DIR="$GEOSERVER_HOME/data_dir" |
Содержание /etc/systemd/system/geoserver.service
Код |
---|
[Unit]
Description=The GeoServer
ServiceAfter=network.target remote-fs.target nss-lookup.target
[Service]
EnvironmentFile=/etc/sysconfig/geoserver
User=geoserver
ExecStart=/usr/bin/geosrv -a -c "source /etc/sysconfig/geoserver && exec ${GEOSERVER_HOME}/bin/startup.sh"
ExecStop=/usr/bin/geosrv -a -c "source /etc/sysconfig/geoserver && exec ${GEOSERVER_HOME}/bin/shutdown.sh"
MemoryLimit=14G
MemoryMax=14G
MemoryAccounting=yes
#Restart=on-failure
#RestartSec=5
[Install]
WantedBy=multi-user.target |
Еще один нюанс, совсем забыл нужно создать символическую ссылку на bash в /usr/bin/geosrv ( ln -s $(which bash) /usr/bin/geosrv ) - это нужно для того, что бы выхлоп с java приложения в syslog'е/journalctl'е высвечивался под unit'ом geosrv, а не от bash, для удобства поиска и структурирования ошибок в логе. Создаем символическую ссылку на bash -
Код |
---|
ln -s $(which bash) /usr/bin/geosrv |
Теперь обновляем конфигурацию
Код |
---|
systemctl daemon-reload |
Запускаем геосервер
Код |
---|
systemctl start geoserver |
Проверяем статус
Код |
---|
systemctl status geoserver.service |
Если все ок, заходим и любуемся через браузер.