Como instalar o Liferay 7.4 Community Edition - Comunidade
Comunidade
- Home
- Instalação do Liferay Community
- Como instalar o Liferay 7.4 Community Edition
Como instalar o Liferay 7.4 Community Edition
Como instalar o Liferay 7.4 Community Edition
Guia completo de instalação do bundle Liferay 7.4 CE com Tomcat em servidor Linux — do download ao modo de produção.
SEA Tecnologia · Equipe de Infraestrutura
Índice
1. Pré-requisitos
2. Instalando o Java (JDK)
Instale o JDK 11. Em distribuições Debian/Ubuntu:
Em RHEL / Oracle Linux / Rocky:
Defina a variável JAVA_HOME de forma persistente (ajuste o caminho ao retorno de readlink -f $(which java)):
3. Criando o usuário e a estrutura de diretórios
Por segurança, o Liferay não deve rodar como root. Crie um usuário de serviço dedicado:
4. Baixando e extraindo o bundle
Baixe o bundle Liferay CE Portal 7.4 GA + Tomcat em liferay.com/downloads-community e copie o link do arquivo .tar.gz (Tomcat bundle).
A extração gera uma pasta como liferay-ce-portal-7.4.x-gaXX. Para padronizar, mova o conteúdo para a raiz:
Estrutura esperada:
5. Criando o banco de dados
Crie um banco e um usuário dedicados, com charset UTF-8. Exemplo em MySQL / MariaDB:
Exemplo em PostgreSQL:
6. Configurando o portal-ext.properties
Toda a configuração do Liferay deve ficar no arquivo portal-ext.properties, na raiz da aplicação — em /opt/liferay/tomcat-9.0.x/webapps/ROOT/WEB-INF/classes/ (ou na raiz /opt/liferay/, também reconhecida pelo bundle).
7. Ajustando a memória da JVM (setenv.sh)
Crie/edite o arquivo setenv.sh em tomcat-9.0.x/bin/ para definir o heap:
8. Configurando o Elasticsearch
O Liferay 7.4 exige o Elasticsearch 7.17.x. Há dois modos:
Para apontar o Liferay a um Elasticsearch externo, use o arquivo OSGi:
osgi/configs/com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
9. Primeira inicialização
Garanta que tudo pertence ao usuário liferay e suba o portal:
Na primeira execução o Liferay cria todas as tabelas no banco. Aguarde a mensagem "Server startup in [NNNNN] ms".
Para parar o servidor:
10. Configurando como serviço (systemd)
Para que o Liferay inicie junto com o sistema e seja gerenciável via systemctl, crie a unit em /etc/systemd/system/liferay.service:
11. Colocando em modo de produção
Em produção, desabilite o auto deploy do Tomcat para evitar que alterações acidentais reiniciem a aplicação. Edite o server.xml:
Localize a configuração do Host e troque autoDeploy="true" por "false":
12. Verificação e troubleshooting
Logs úteis:
SEA Tecnologia · Equipe de Infraestrutura
Este artigo descreve a instalação do Liferay 7.4 Community Edition (CE GA) a partir do bundle oficial empacotado com o Apache Tomcat 9, em um servidor Linux. O procedimento segue os padrões da SEA Tecnologia: instalação em /opt/liferay, configuração via portal-ext.properties e execução sob um usuário de serviço dedicado.
Índice
- Pré-requisitos
- Instalando o Java (JDK)
- Criando o usuário e a estrutura de diretórios
- Baixando e extraindo o bundle
- Criando o banco de dados
- Configurando o portal-ext.properties
- Ajustando memória da JVM (setenv.sh)
- Configurando o Elasticsearch
- Primeira inicialização
- Configurando como serviço (systemd)
- Colocando em modo de produção
- Verificação e troubleshooting
- Referências
1. Pré-requisitos
- Sistema Operacional: Linux 64 bits (Ubuntu 20.04+ / RHEL 8+ / Oracle Linux)
- Java (JDK): JDK 11 (LTS). O 7.4 também suporta JDK 8, mas padronize no JDK 11.
- Memória RAM: 8 GB recomendado (mín. 4 G — heap da JVM separado do Elasticsearch.
- Disco: 20 GB+ livres (bundle + data + logs + índices).
- Banco de Dados: MySQL 8 / MariaDB 10.x / PostgreSQL 13+ / Oracle 19c.
- Search Engine: Elasticsearch 7.17.x (sidecar embutido para dev ou standalone para produção).
Atenção ao banco padrão: ao iniciar sem configuração, o Liferay sobe com o HSQLDB (banco em memória/arquivo). Ele serve apenas para testes — nunca use em produção. Configure o banco real ANTES da primeira inicialização (passo 6).
2. Instalando o Java (JDK)
Instale o JDK 11. Em distribuições Debian/Ubuntu:
| 1 | sudo apt update |
| 2 | sudo apt install -y openjdk-11-jdk |
| 3 | java -version |
Em RHEL / Oracle Linux / Rocky:
| 1 | sudo dnf install -y java-11-openjdk-devel |
| 2 | java -version |
Defina a variável JAVA_HOME de forma persistente (ajuste o caminho ao retorno de readlink -f $(which java)):
| 1 | # Exemplo em /etc/profile.d/java.sh |
| 2 | export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 |
| 3 | export PATH=$JAVA_HOME/bin:$PATH |
3. Criando o usuário e a estrutura de diretórios
Por segurança, o Liferay não deve rodar como root. Crie um usuário de serviço dedicado:
| 1 | sudo useradd -r -m -d /opt/liferay -s /bin/bash liferay |
| 2 | sudo mkdir -p /opt/liferay |
| 3 | sudo chown -R liferay:liferay /opt/liferay |
Padrão SEA: a base de instalação é sempre /opt/liferay, com o Tomcat em /opt/liferay/tomcat-9.0.x. Manter esse padrão facilita scripts, backups e monitoramento.
4. Baixando e extraindo o bundle
Baixe o bundle Liferay CE Portal 7.4 GA + Tomcat em liferay.com/downloads-community e copie o link do arquivo .tar.gz (Tomcat bundle).
| 1 | # Como usuário liferay |
| 2 | sudo su - liferay |
| 3 | cd /opt/liferay |
| 4 | |
| 5 | # Exemplo (ajuste a URL/versão para a release escolhida) |
| 6 | wget https://releases-cdn.liferay.com/portal/7.4.x-ga/liferay-ce-portal-tomcat-7.4.x-gaXX.tar.gz |
| 7 | |
| 8 | # Extrair |
| 9 | tar -xzf liferay-ce-portal-tomcat-7.4.x-gaXX.tar.gz |
A extração gera uma pasta como liferay-ce-portal-7.4.x-gaXX. Para padronizar, mova o conteúdo para a raiz:
| 1 | mv liferay-ce-portal-7.4.x-gaXX/* /opt/liferay/ |
| 2 | rmdir liferay-ce-portal-7.4.x-gaXX |
| 3 | ls -la /opt/liferay |
Estrutura esperada:
| 1 | /opt/liferay |
| 2 | data/ # documentos, índices (sidecar), etc. |
| 3 | deploy/ # hot deploy de módulos e temas (.war / .jar) |
| 4 | logs/ |
| 5 | osgi/ |
| 6 | tomcat-9.0.x/ # servidor de aplicacao |
| 7 | bin/ |
| 8 | conf/ |
| 9 | webapps/ROOT/ # a aplicacao Liferay |
| 10 | portal-setup-wizard.properties |
5. Criando o banco de dados
Crie um banco e um usuário dedicados, com charset UTF-8. Exemplo em MySQL / MariaDB:
| 1 | CREATE DATABASE lportal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; |
| 2 | CREATE USER 'liferay'@'%' IDENTIFIED BY 'SENHA_FORTE_AQUI'; |
| 3 | GRANT ALL PRIVILEGES ON lportal.* TO 'liferay'@'%'; |
| 4 | FLUSH PRIVILEGES; |
Exemplo em PostgreSQL:
| 1 | CREATE ROLE liferay WITH LOGIN PASSWORD 'SENHA_FORTE_AQUI'; |
| 2 | CREATE DATABASE lportal WITH OWNER = liferay ENCODING = 'UTF8'; |
Oracle: a SEA mantém procedimento próprio de criação de tablespaces, usuário e profile para portais em Oracle. Consulte o documento criar_base_de_dados_banco_oracle.md.
6. Configurando o portal-ext.properties
Toda a configuração do Liferay deve ficar no arquivo portal-ext.properties, na raiz da aplicação — em /opt/liferay/tomcat-9.0.x/webapps/ROOT/WEB-INF/classes/ (ou na raiz /opt/liferay/, também reconhecida pelo bundle).
| 1 | # ===== Conexao JDBC ===== |
| 2 | # --- MySQL / MariaDB --- |
| 3 | jdbc.default.driverClassName=com.mysql.cj.jdbc.Driver |
| 4 | jdbc.default.url=jdbc:mysql://localhost:3306/lportal?characterEncoding=UTF-8&useUnicode=true&serverTimezone=GMT |
| 5 | jdbc.default.username=liferay |
| 6 | jdbc.default.password=SENHA_FORTE_AQUI |
| 7 | |
| 8 | # --- PostgreSQL (alternativa) --- |
| 9 | # jdbc.default.driverClassName=org.postgresql.Driver |
| 10 | # jdbc.default.url=jdbc:postgresql://localhost:5432/lportal |
| 11 | # jdbc.default.username=liferay |
| 12 | # jdbc.default.password=SENHA_FORTE_AQUI |
| 13 | |
| 14 | # ===== Setup Wizard ===== |
| 15 | setup.wizard.enabled=false |
| 16 | |
| 17 | # ===== Administrador padrao ===== |
| 18 | default.admin.email.address=admin@seatecnologia.com.br |
| 19 | default.admin.first.name=Administrador |
| 20 | default.admin.last.name=SEA |
| 21 | |
| 22 | # ===== Localizacao (Brasil) ===== |
| 23 | company.default.locale=pt_BR |
| 24 | company.default.time.zone=America/Sao_Paulo |
Driver JDBC: os bundles do 7.4 já incluem os drivers MySQL e PostgreSQL. Para Oracle, copie o ojdbcXX.jar para /opt/liferay/tomcat-9.0.x/lib/ext/ manualmente.
7. Ajustando a memória da JVM (setenv.sh)
Crie/edite o arquivo setenv.sh em tomcat-9.0.x/bin/ para definir o heap:
| 1 | #!/bin/bash |
| 2 | CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8" |
| 3 | CATALINA_OPTS="$CATALINA_OPTS -Duser.timezone=America/Sao_Paulo" |
| 4 | CATALINA_OPTS="$CATALINA_OPTS -Xms4g -Xmx4g" |
| 5 | CATALINA_OPTS="$CATALINA_OPTS -XX:MetaspaceSize=384m -XX:MaxMetaspaceSize=512m" |
| 6 | CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC" |
| 1 | chmod +x /opt/liferay/tomcat-9.0.x/bin/setenv.sh |
Dica: mantenha -Xms e -Xmx com o mesmo valor para evitar redimensionamentos de heap. Reserve memória do host também para o Elasticsearch.
8. Configurando o Elasticsearch
O Liferay 7.4 exige o Elasticsearch 7.17.x. Há dois modos:
- Sidecar (embutido): ativo por padrão, ótimo para desenvolvimento/homologação. Não requer instalação extra.
- Remoto/standalone: obrigatório em produção e em ambientes clusterizados.
Para apontar o Liferay a um Elasticsearch externo, use o arquivo OSGi:
osgi/configs/com.liferay.portal.search.elasticsearch7.configuration.ElasticsearchConfiguration.config
| 1 | operationMode="REMOTE" |
| 2 | networkHostAddresses=["127.0.0.1:9200"] |
| 3 | clusterName="liferay-cluster" |
| 4 | productionModeEnabled=B"true" |
Produção: com productionModeEnabled=true o Liferay NÃO inicia se não encontrar um Elasticsearch remoto saudável. Garanta que o ES esteja no ar antes de subir o portal.
9. Primeira inicialização
Garanta que tudo pertence ao usuário liferay e suba o portal:
| 1 | sudo chown -R liferay:liferay /opt/liferay |
| 2 | sudo su - liferay |
| 3 | |
| 4 | # Subir |
| 5 | /opt/liferay/tomcat-9.0.x/bin/startup.sh |
| 6 | |
| 7 | # Acompanhar os logs |
| 8 | tail -f /opt/liferay/tomcat-9.0.x/logs/catalina.out |
Na primeira execução o Liferay cria todas as tabelas no banco. Aguarde a mensagem "Server startup in [NNNNN] ms".
Pronto! Acesse http://SEU_SERVIDOR:8080. Faça login com o e-mail definido em default.admin.email.address e a senha padrão "test" — o sistema solicitará a troca imediata da senha e uma pergunta de segurança.
Para parar o servidor:
| 1 | /opt/liferay/tomcat-9.0.x/bin/shutdown.sh |
10. Configurando como serviço (systemd)
Para que o Liferay inicie junto com o sistema e seja gerenciável via systemctl, crie a unit em /etc/systemd/system/liferay.service:
| 1 | [Unit] |
| 2 | Description=Liferay 7.4 CE (Tomcat) |
| 3 | After=network.target |
| 4 | |
| 5 | [Service] |
| 6 | Type=forking |
| 7 | User=liferay |
| 8 | Group=liferay |
| 9 | Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 |
| 10 | Environment=CATALINA_PID=/opt/liferay/tomcat-9.0.x/temp/catalina.pid |
| 11 | ExecStart=/opt/liferay/tomcat-9.0.x/bin/startup.sh |
| 12 | ExecStop=/opt/liferay/tomcat-9.0.x/bin/shutdown.sh |
| 13 | Restart=on-failure |
| 14 | TimeoutStartSec=600 |
| 15 | |
| 16 | [Install] |
| 17 | WantedBy=multi-user.target |
| 1 | sudo systemctl daemon-reload |
| 2 | sudo systemctl enable liferay |
| 3 | sudo systemctl start liferay |
| 4 | sudo systemctl status liferay |
11. Colocando em modo de produção
Em produção, desabilite o auto deploy do Tomcat para evitar que alterações acidentais reiniciem a aplicação. Edite o server.xml:
| 1 | vim /opt/liferay/tomcat-9.0.x/conf/server.xml |
Localize a configuração do Host e troque autoDeploy="true" por "false":
| 1 | <Host name="localhost" appBase="webapps" |
| 2 | unpackWARs="true" autoDeploy="false"></Host> |
Referência interna: este passo também está em modoproducao.md. Com autoDeploy="false", o Liferay bloqueia o hot deploy e não reinicia ao detectar mudanças em ROOT/WEB-INF.
12. Verificação e troubleshooting
- Portal não sobe / preso no boot: verifique catalina.out. Em produção, confirme que o Elasticsearch remoto está saudável (curl localhost:9200).
- Erro de conexão com o banco: confira jdbc.default.url, usuário/senha e se o driver (Oracle) está em tomcat/lib/ext.
- Subiu com HSQLDB sem querer: o portal-ext.properties não foi lido. Confirme o caminho do arquivo e reinicie limpando o data/ de teste.
- Acentuação errada: garanta charset utf8mb4 no banco e -Dfile.encoding=UTF-8 no setenv.sh.
- Permissão negada nos arquivos: sudo chown -R liferay:liferay /opt/liferay
Logs úteis:
| 1 | tail -f /opt/liferay/tomcat-9.0.x/logs/catalina.out # boot e erros gerais |
| 2 | tail -f /opt/liferay/logs/liferay.*.log # logs da aplicacao |
5/4/23