Возникла потребность создания красивого приложения на APEX используя VPS, а не обычный Dedic.

Устанавливать будем версию Oracle XE, чтобы не покупать лицензию. Имеющиеся ограничения версии XE:

  • 3 Pluggable Databases
  • 2 CPUs for foreground processes
  • 2GB of RAM (SGA and PGA combined)
  • 12GB of user data on disk (irrespective of compression factor)

Для нашего приложения — с лихвой хватит данных лимитов.

Предустановка.

Используем «чистую» систему Centos7.

Для начала обновим систему:

yum update

Установка ORACLE любой версии крайне требовательна к пространству swap, а на VDS он часто либо полностью отсутствует, либо мизерных размеров, поэтому — будем увеличивать.

Создаём сам файл размером 4GB:

dd if=/dev/zero of=/swapfile count=4096 bs=1MiB

Ограничим доступ к этому файлу:

chmod 600 /swapfile

«Определяем» файл:

mkswap /swapfile

«Включаем» файл:

swapon /swapfile

Проверяем, что swap увеличился:

swapon --show all

Сохраним изменения, чтобы после перезагрузки swap подключался автоматически:

nano /etc/fstab
/swapfile   swap   swap   defaults   0 0

Сохраним, перезагрузимся и проверяем, что swap > 4 GB.

Для подготовки сервера к установке Oracle используем готовый инсталлятор:

curl -o oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
yum localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm

При этом будут установлены все необходимые для работы СУБД пакеты, а так же выставлены значения системных переменных. Можно переходить непосредственно к установке СУБД.

Установка и настройка Oracle XE.

Скачиваем c официального сайта последнюю версию:

https://www.oracle.com/database/technologies/xe-downloads.html

Копируем на сервер и запускаем установку:

yum localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm

Хочу заметить, что в отличии от установки обычной версии ORACLE, тут не требуется использовать визуальное окно java-машины, следовательно, пробрасывать экран через ssh, да и вообще устанавливать X-окружение.

Так же, установка идёт от пользователя root, а не специально созданного для этого пользователя.

После установки необходимо сконфигурировать инстанс, но перед этим отредактировать при необходимости файл конфига:

/etc/sysconfig/oracle-xe-18c.conf

Запускаем первоначальное конфигурирование, при этом создаётся LISTENER, CDB, PDB, а так же надо будет ввести пароль для системных пользователей.

/etc/init.d/oracle-xe-18c configure

При возникновении ошибки:

[FATAL] [DBT-06103] The port (5,500) is already in use.

пропишите имя сервера с его IP адресом в /etc/hosts !

По окончанию установки появится запись о результатах. Пропишем переменные, параметры базы в /opt/oracle/product/18c/dbhomeXE/network/admin/tnsnames.ora и проверим подключение:

nano ~/.bash_profile

# Oracle Settings
export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

/opt/oracle/product/18c/dbhomeXE/bin/sqlplus "sys@XEPDB1" as sysdba

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

/sbin/chkconfig oracle-xe-18c on

Не забываем удалить оба установочных пакета!

Установка APEX

Скачиваем нужную версию тут: https://www.oracle.com/tools/downloads/apex-downloads.html

Я предпочитаю пока пользоваться версией 18.2. качаем версию «all-language», распаковываем архив на сервере в папку /opt/apex

Переходим в каталог /opt/apex и подключаемся к нашей базе с правами sysdba:

Запускаем установку APEXa (мы не будем создавать отдельные табличные пространства для объектов АРЕХа и загружаемых файлов) и сразу сменим пароль у администратора:

@apexins.sql SYSAUX SYSAUX TEMP /i/
@apxchpwd.sql

Установка ORDS

Скачиваем последнюю версию: https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html

Распаковываем в папку /opt/ords

Создаём папку для хранения конфига (рекомендуется это делать в отдельном каталоге, но мы используем тот же): /opt/ords/config

Запускаем установку (точнее, настройку):

cd /opt/ords/
java -jar ords.war

Во время настройки вводим пароли пользователей, указываем папку с картинками /opt/apex/images , а так же выбираем протокол HTTP (шифровать его мы будем уже в Tomcat).

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

Настроить отображение статических файлов:

@apex_rest_config.sql

Открываем в браузере ссылку http://IP:8080/ords/f?p=4000 и проверяем, что всё работает.

Установка Tomcat

В качестве веб-сервера будем использовать именно его, т.к. он прекрасно подтягивает java-машину ORDS.

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

groupadd tomcat
useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
mkdir /opt/tomcat

На странице Tomcat копируем ссылку на дистрибутив. Я пока использую 8 версию. Скачиваем архив на сервер и распаковываем его:

wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.71/bin/apache-tomcat-8.5.71.tar.gz
tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

Сменим права на каталог:

chown -R tomcat:tomcat /opt/tomcat

Для запуска Tomcat в качестве службы, создадим соответствующий файл:

nano /etc/systemd/system/tomcat.service

# Systemd unit file for tomcat
[Unit] 
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service] 
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
[Install] 
WantedBy=multi-user.target

Сохраняем файл, перезапускаем демона и запускаем сам Tomcat (убедитесь, что ords установленный ранее не занимает порт 8080 в данный момент).

netstat -tnlp | grep :8080

systemctl daemon-reload

systemctl start tomcat

Убеждаемся, что по адресу http://IP:8080/ открывается страница и вносим tomcat в автозагрузку.

Запуск ORDS в Tomcat

Для запуска достаточно скопировать папку images и файл ords.war в папку tomcat-a:

mkdir /opt/tomcat/webapps/i/
cp -R /opt/apex/images/* /opt/tomcat/webapps/i/
cp /opt/ords/ords.war /opt/tomcat/webapps/ords.war

После перезапускаем Tomcat и проверяем работу в браузере по адресу: http://IP:8080/ords/f?p=4000

SSL в Tomcat

Я использую ранее купленный сертификат. Создадим папку /opt/tomcat/SSL/ и скопируем в неё два файла сертификатов chain — цепочка родителей, sert — сам сертификат. Далее, создаёт контейнер ключей и добавляем в него два сертификата со своими алиасами. «root» в последствии меняться не будет, а «tomcat» раз в год будет обновляться.

keytool -import -alias root -keystore /opt/tomcat/SSL/.keystore -trustcacerts -file /opt/tomcat/SSL/chain.crt
keytool -import -alias tomcat -keystore /opt/tomcat/SSL/.keystore -file /opt/tomcat/SSL/sert.crt

Вы также можете прочитать:

Оставить комментарий

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.