Установка Java, Apache Tomcat и PostgreSQL в Linux-е

Содержание

Подготовка к установке
Установка Java
Установка Apache Tomcat
Добавление нового пользователя Tomcat
Настройка переменных окружения
Пробный запуск Apache Tomcat
Настройка автоматического запуска Apache Tomcat в качестве демона
Установка PostgreSQL
Добавление нового пользователя tomcat в PostgreSQL
Добавление JNDI-ресурса в Apache Tomcat
Установка nginx и перенаправление запросов с 80 порта на 8080/appname
Автоматическое создание резервной копии базы данных PostgreSQL каждый день в полночь
Настройка HTTPS в Apache Tomcat
Ссылки

Подготовка к установке

У вас на компьютере должен быть установлен PuTTY (нужен для подключения по SSH к серверу) и PSCP (нужен для закачки файлов НА сервер по SSH). Вы должны уметь пользоваться им. У вас должен быть доступ по SSH к серверу. Сервер должен быт на Linux-е.

Смотрим информацию о системе

Итак. Имеем только что установленный Linux. Смотрим, что у нас есть:

Подробнее о команде uname -a читать здесь: Как посмотреть информацию о системе в Linux

У меня получился вывод:

Linux VM-2116-11998-01 3.13.0-53-generic #88-Ubuntu SMP Wed May 13 18:10:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Вывод будет сильно отличаться в разных дистрибутивах. Но тут видно, что у меня Ubuntu 64-х разрядная.

Установка Java

Нам нужно скачать Java. Скачиваем последнюю версию на сайте Oracle http://www.oracle.com/technetwork/java/javase/downloads/index.html

Нам нужно скачать Server JRE. Соглашаемся с лицензией и скачиваем server-jre-…-x64.tar.gz. На момент написания этой статьи последней версией бала Java 8u51. Остальную статью будут писать для этой версии. Вам нужно будет все эти вхождения заменить на ту версию, которая будет у вас.

Теперь нужно загрузить его на сервер. Для этого используем PuTTY PSCP:

Сервер запросит пароль. Вводим его и ждём окончания отдачи файла.

Заходим на сервер по SSH. В каталоге /root лежит наш файл server-jre-8u51-linux-x64.tar.gz. Нам нужно его распаковать и поместить в /opt/jre-8u51:

Более подробное описание команды распаковки здесь: Как распаковать tar gz файл.
Проверяем:

Установка Apache Tomcat

Скачиваем последнюю версию с сайта http://tomcat.apache.org/. Я скачал tar.gz-архив. Binary distributions/Core/tar.gz. На момент написания статьи последней версией был apache-tomcat-8.0.24. Остаток статьи будет писаться для неё. Вам нужно будет заменить все вхождения этой версии на свою версию. Закачиваем его на наш сервер с помощью PuTTY PSCP:

Сервер запросит пароль. Вводим его и ждём окончания отдачи файла.

Заходим на сервер по SSH. В каталоге /root лежит наш файл apache-tomcat-8.0.24.tar.gz. Распаковываем его и перемещаем в /opt:

Теперь на сервере в каталоге /opt у нас два каталога:

Добавление нового пользователя tomcat

Наш сервис Apache Tomcat будет крутиться под отдельным пользователем. Создадим его.

Зададим ему любой пароль и остальную информацию.  Нам никогда не потребуется заходить в систему от имени этого пользователя. Пароль после задания можете сразу забыть.

Настройка переменных окружения

В файлах /root/.bashrc и /home/tomcat/.bashrc (пользователь tomcat был создан при выполнении предыдущего пункта) добавим следующие записи:

Перезаходим в систему по SSH (выходим и снова заходим). Это нужно для того, чтобы наши изменения в конфигурационных файлах перечитались.

Пробный запуск Apache Tomcat

Переходим в каталог /opt/apache-tomcat-8.0.24/bin. Пробуем запустить:

В консоли должно выйти что-то вроде вот этого:

Теперь попробуйте зайти браузером с вашего личного компьютера по адресу http://<IP_сервера>:8080. Если вы всё сделали правильно, то вы должны увидеть страницу с надписью «If you’re seeing this, you’ve successfully installed Tomcat. Congratulations!» и кучу ссылок на документацию, примеры и прочее.

Лирическое оступление. Тут весьма странно. На сколько я знаю, глагол to see статальный и в продолженных временах не употребляется. Но здесь сами англичание употребили его так. Видимо, мои знания английского не слишком полны.

Итак. Мы установили Tomcat. Останавливаем его с консоли сервера:

Настройка автоматического запуска Apache Tomcat в качестве демона

Нам нужно сделать так, чтобы Apache Tomcat запускался сам при старте сервера. Причём он должен работать не от пользователя root, а от пользователя tomcat.

Для этого нам нужно собрать программу jsvc из исходников, лежащих в архиве /opt/apache-tomcat-8.0.24/bin/commons-daemon-native.tar.gz. Из каталога /opt/apache-tomcat-8.0.24/bin:

М-да. Выходит ошибка. Нет компилятора C. Ставим его:

Довольно большая простыня текста выходит.

Пробуем ещё раз:

Последние строки вывода должны быть примерно такие:

Собираем:

М-да. Программы make тоже нет. Ставим:

Пробуем собрать ещё раз:

Если всё прошло хорошо, то должен появиться файл jsvc. Это то, что нам нужно. Копируем его в /opt/apache-tomcat-8.0.24/bin/:

Для запуска Apache Tomcat в качестве сервера нужно разместить файл /opt/apache-tomcat-8.0.24/bin/daemon.sh в каталог /etc/init.d. Нужно дать ему такое имя, чтобы было понятно, что он относится к Apache Tomcat, например, apache-tomcat-8. Обратите внимание, что файл в /etc/init.d не должен иметь расширения. В начале файла нужно добавить те же самые строки, что мы добавляли в файлы .bashrc:

Добавляем переменные окружения:

Копируем в /etc/init.d:

Чтобы пользователь tomcat мог нормально работать передаём ему права на каталог /opt/apache-tomcat-8.0.24/.

Команда выполняется из каталога /opt:

Теперь мы можем запускать демона командой:

И останавливать командой:

Запустите его сейчас и проверьте, что по адресу http://<IP_сервера>:8080 выходит страница.

Чтобы сервер автоматически стартовал при перезагрузке нужно выполнить команду:

sudo update-rc.d apache-tomcat-8 start 99 2 3 4 5 . stop 01 0 1 6 .

Эта команда создаст необходимые для автоматического запуска при старте системы символические ссылки в каталогах /etc/rc0.d, /etc/rc1.d  и т. д.

Установка PostgreSQL

Без базы данных будет уныло. Установим PostgreSQL:

Ок. Установили. Можно с помощью psql выполнять скрипты. Для этого нужно сначала запустить его:

Добавление нового пользователя tomcat в PostgreSQL

К базе данных будем подключаться не от имени всемогущего postgres, а создадим нового пользователя tomcat.

Зайдём в psql от имени postgres, чтобы создать нового пользователя:

Создаём нового пользователя:

Эта команда создаст пользователя с логином tomcat и паролем newuserpassword.

Нужно создать для него базу данных:

Выйти из psql можно командой:

 

После этого нужно добавить для этого пользователя строчку в файл /etc/postgresql/<номер_версии>/main/pg_hba.conf:

 

Перезапускаем PostgreSQL.

Всё. Теперь пользователь может логиниться в PostgreSQL.

Добавление JNDI-ресурса в Apache Tomcat

Скачиваем jdbc-драйвер PostgreSQL для Java по ссылке: https://jdbc.postgresql.org/

Закачиваем его на сервер с помощью PuTTY:

На сервере перемещаем его из каталога /root в каталог /opt/apache-tomcat-8.0.24/lib:

Открываем на редактирование файл /opt/apache-tomcat-8.0.24/conf/context.xml и дописываем там JNDI-ресурс:

Эти строчки нужно добавлять внутри тега Context.

Теперь JNDI-ресурс настроен. Для проверки можно остановить сервер и запустить снова. В логе не должно быть ошибок. Можно деплоить war-файлы. Для этого их нужно поместить в каталог /opt/apache-tomcat-8.0.24/webapps и Apache Tomcat сам их развернёт и запустит.

Установка nginx и перенаправление запросов с 80 порта на 8080/appname

Этот шаг не обязательный и не всегда нужен.

В файле настроек /etc/nginx/sites-available прописываем rewrite внутри блока server вместо location /:

Теперь на наше приложение можно заходить через браузер просто по IP: http://<IP_сервера>.

Автоматическое создание резервной копии базы данных PostgreSQL каждый день в полночь

Создадим задание, которое будет выполняться от имени postgres и создавать резервные копии в полночь:

В открывшемся файле внизу допишем строки:

Теперь каждую полночь будут создаваться резервные копии базы данных tomcat и сохраняться в /home/postgres. Создадим этот каталог:

Более подробное описание смотрите здесь: Запуск заданий в определённое время в Linux с помощью cron

Настройка HTTPS в Apache Tomcat

Если это ваш production-сервер, то рекомендуется получить сертификат для SSL и настроить HTTPS в Apache Tomcat.

Если вы установили Apache Tomcat за nginx, то шифрование нужно настраивать в nginx.

Имейте в виду, что если вы используете HTTPS, то все ресурсы, которые будет скачивать браузер, должны запрашиваться по HTTPS. Неважно, с внешних сайтов или с нашего настраиваемого сервера, картинки или скрипты. Если HTTPS, то всё должно быть по HTTPS.

http://tomcat.apache.org/tomcat-8.0-doc/ — Документация на Apache Tomcat 8

http://www.postgresql.org/docs/9.4/static/ — Документация на PostgreSQL 9.4

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html — Ссылка на скачивание PuTTY.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *