Publicando sistemas do Maker no Tomcat 8.5 e Ubuntu 18.04

Faça login e execute todos os comandos abaixo como root.

O Java utilizado agora é OpenJDK.
Neste momento a versão atual é essa abaixo:

openjdk 11.0.3 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu218.04.1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu218.04.1, mixed mode, sharing)

Instale o Java:

root@vps01:~#  apt install default-jdk

Instale os pacotes utilitários:

root@vps01:~#  apt install unzip wget

Baixe o Tomcat 8.5 e instale:

root@vps01:~#  cd ~

root@vps01:~#  pwd 
/root

root@vps01:~#  wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.zip

root@vps01:~#  unzip apache-tomcat-*.zip

root@vps01:~#  mkdir -p /opt/tomcat

root@vps01:~#  mv apache-tomcat-8.5.61 /opt/tomcat/

root@vps01:~#  ln -s /opt/tomcat/apache-tomcat-8.5.61 /opt/tomcat/latest

root@vps01:~#  useradd -m -U -d /opt/tomcat -s /bin/false tomcat

root@vps01:~#  chown -R tomcat: /opt/tomcat

root@vps01:~#  sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Agora precisa criar o serviço Tomcat manualmente:

root@vps01:~#  nano /etc/systemd/system/tomcat.service

Copie e cole o texto abaixo:

[Unit]
Description=Tomcat 8.5 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment=“JAVA_HOME=/usr/lib/jvm/default-java”
Environment=“JAVA_OPTS=-Djava.security.egd=file:///dev/urandom”

Environment=“CATALINA_BASE=/opt/tomcat/latest”
Environment=“CATALINA_HOME=/opt/tomcat/latest”
Environment=“CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid”
Environment=“CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC”

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Obs.: Se não conhece o Nano, basta apertar CRTL+X e digitar Y ou S, e dar ENTER

Agora precisa ativar o serviço:

root@vps01:~#  systemctl daemon-reload

root@vps01:~#  systemctl start tomcat

root@vps01:~#  systemctl enable tomcat

root@vps01:~#  systemctl status tomcat

 tomcat.service - Tomcat 8.5 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-06-01 03:23:28 UTC; 6 days ago
 Main PID: 969 (java)
    Tasks: 52 (limit: 1152)
   CGroup: /system.slice/tomcat.service
           969 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.eg

Jun 01 03:23:28 vps01 systemd[1]: Starting Tomcat 8.5 servlet container...
Jun 01 03:23:28 vps01 startup.sh[917]: Tomcat started.
Jun 01 03:23:28 vps01 systemd[1]: Started Tomcat 8.5 servlet container.

Vamos conferir se o Tomcat está com a porta 8080 ativa:

root@vps01:~#  netstat -nputa | less

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1032/mysqld
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      997/nginx: master p
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      684/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      970/sshd
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      1077/postgres
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1252/master
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      969/java
tcp6       0      0 :::5001                 :::*                    LISTEN      969/java
tcp6       0      0 :::8009                 :::*                    LISTEN      969/java
tcp6       0      0 :::8080                 :::*                    LISTEN      969/java
tcp6       0      0 :::80                   :::*                    LISTEN      997/nginx: master p
tcp6       0      0 :::22                   :::*                    LISTEN      970/sshd
tcp6       0      0 :::25                   :::*                    LISTEN      1252/master
tcp6       0      0 127.0.0.1:36976         127.0.0.1:5432          TIME_WAIT   -
udp        0      0 127.0.0.1:43456         127.0.0.1:43456         ESTABLISHED 1077/postgres
udp        0      0 127.0.0.53:53           0.0.0.0:*                           684/systemd-resolve

Agora precisa liberar a porta para acesso externo:

root@vps01:~# ufw allow 8080/tcp

O arquivo server.xml precisa ser modificado para aceitar caracteres diferentes:

root@vps01:~# nano /opt/tomcat/latest/conf/server.xml

Edite o bloco Connector e deixe igual abaixo:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               relaxedPathChars="{}"
               relaxedQueryChars="{}" />

Reinicie o Tomcat:

root@vps01:~# systemctl restart tomcat

Agora é necessário confirmar se os locales pt-BR UTF8 e ISO8859 estão instalados:

root@vps01:~# locale-gen pt_BR.UTF-8
root@vps01:~# locale-gen pt_BR

Para ter certeza, verifique se os dois locales estão marcados abaixo:

root@vps01:~# dpkg-reconfigure locales

O próximo passo é instalar o PostgreSQL. Pode ser a versão 10 ou 11, mas para efeito de compatibilidade com os projetos vou demonstrar a instalação da versão 9.6:

root@vps01:~# apt-get install curl ca-certificates
root@vps01:~# curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
root@vps01:~# sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
root@vps01:~# apt update
root@vps01:~# apt install postgresql-9.6
root@vps01:~# psql -U postgres
psql (9.6.12)
Type "help" for help.

postgres=# \q

root@vps01:~# su - postgres

postgres@vps01:~$ createdb -E UTF-8 -T template0 --lc-collate=pt_BR.utf8 --lc-ctype=pt_BR.utf8 "maker1"

postgres@rafael01:~$ psql
psql (9.6.12)
Type "help" for help.

postgres=# \l
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
-----------+----------+----------+------------+------------+-----------------------
 maker1    | postgres | UTF8     | pt_BR.utf8 | pt_BR.utf8 |
 postgres  | postgres | UTF8     | C.UTF-8    | C.UTF-8    |
 template0 | postgres | UTF8     | C.UTF-8    | C.UTF-8    | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8    | C.UTF-8    | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
(4 rows)

postgres=# \q

postgres@vps01:~$ dropdb maker1

postgres@vps01:~$ logout

root@vps01:~#

Pronto, agora é só acessar.

Faça o backup do seu banco e exporte.

Para instalar seu sistema, primeiro gere um arquivo .war completo.
Faço o upload do banco e do arquivo war.

Copie o .war para a pasta /opt/tomcat/latest/webapps/.

Antes de acessar o sistema, restaure o banco de dados:

root@vps01:~# pg_restore -U postgres --verbose --dbname=<nomedb> <ARQUIVO.BACKUP>

Verifique se o sistema subiu acessando http://:8080/

Entre em configurações na tela abaixo:

image

Informe o usuário e senha. Geralmente é o padrão admin/webrun:

image

Escolha o sistema e clique em configurar:

image

Clique em configurações avançadas e preencha a senha correta para o postgres:

image

Caso não se lembre da senha, basta executar os comandos abaixo:

root@vps01:~# su - postgres
postgres@vps01:~$ psql
psql (9.6.12)
Type "help" for help.

postgres=# ALTER USER postgres with password 'postgres';
ALTER ROLE
postgres=# \q
postgres@vps01:~$ logout
root@vps01:~#

Pronto, seu sistema já pode ser usado.