Como instalar o dotCMS no Ubuntu 16.04

O DotCMS é um sistema de gerenciamento de conteúdo de nível empresarial de código aberto, escrito em Java. Ele contém quase todos os recursos necessários para criar um site para o seu negócio. Ele fornece uma API RESTful para integração com outros serviços, como CRM, aplicativos móveis e muito mais. Ele usa o Elasticsearch para indexação de conteúdo em tempo real e o Redis para implementar um cache de várias camadas.

Pré-requisitos

  • Uma instância do servidor Vultr Ubuntu 16.04.
  • Um usuário sudo .
  • Um nome de domínio apontado para o servidor.

Neste tutorial, usaremos 192.168.0.1 como endereço IP público e cms.example.com como nome de domínio apontado para a instância do Vultr. Certifique-se de substituir todas as ocorrências do exemplo de nome de domínio e endereço IP público pelo nome real.

Atualize seu sistema base usando o guia Como atualizar o Ubuntu 16.04 . Depois que seu sistema for atualizado, continue com a instalação do Java.

Instale Java

Adicione o repositório Ubuntu para Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Instale Java.

sudo apt -y install oracle-java8-installer

Você poderá verificar a versão do Java.

java -version

Você verá a seguinte saída.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Defina o caminho padrão para Java instalando o pacote a seguir.

sudo apt -y install oracle-java8-set-default

Você pode verificar se JAVA_HOMEestá definido.

echo $JAVA_HOME

Você deve ver o seguinte.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Se você não vir nenhuma saída, precisará sair do shell atual e efetuar login novamente.

Instale o PostgreSQL

Por padrão, o dotCMS está configurado para usar o mecanismo de banco de dados H2. O mecanismo de banco de dados H2 é um mecanismo de banco de dados baseado em arquivo simples. Não é recomendado usar na produção. Neste tutorial, usaremos o servidor PostgreSQL para armazenar o banco de dados dotCMS.

O PostgreSQL é um sistema de banco de dados objeto-relacional, conhecido por sua estabilidade e velocidade. O repositório padrão do Ubuntu contém uma versão antiga do PostgreSQL; portanto, adicione o repositório do PostgreSQL.

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

Instale o servidor de banco de dados PostgreSQL.

sudo apt -y install postgresql

Inicie o servidor PostgreSQL e ative-o automaticamente no momento da inicialização.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Mude a senha do usuário padrão do PostgreSQL.

sudo passwd postgres

Efetue login como usuário do PostgreSQL.

sudo su - postgres

Crie um novo usuário do PostgreSQL para o dotCMS.

createuser dotcms 

O PostgreSQL fornece o psql shell para executar consultas no servidor de banco de dados. Mude para o shell do PostgreSQL.

psql

Defina uma senha para o usuário recém-criado para o banco de dados dotCMS.

ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';

Substitua a senha do usuário do banco de dados DBPassword por uma senha segura.

Crie um novo banco de dados para a instalação do dotCMS.

CREATE DATABASE dotcms OWNER dotcms;

Saia do psql shell.

\q

Mude para o sudo usuário.

exit

Instale o dotCMS

Faça o download do arquivo dotCMS.

wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.3.2.tar.gz

Você sempre pode encontrar o link para a versão mais recente do aplicativo na página de download do dotCMS .

Crie um novo diretório para armazenar os arquivos dotCMS e extraí-los.

sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms

Abra o arquivo de configuração do banco de dados.

cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml

Encontre o H2 bloco.

<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

Comente a H2 seção inteira movendo o delimitador de comentários --> do início da seção para o final da seção. Deve parecer com o seguinte.

<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->

Remova o comentário da seção PostgreSQL removendo o delimitador de comentários --> do final da seção e colocando-o na parte superior POSTGRESQL. Além disso, encontre username= e password= substitua os valores existentes pelo nome de usuário e senha do seu usuário do banco de dados PostgreSQL. Se você tiver usado um nome de banco de dados diferente de dotcms, precisará alterar o nome do banco de dados url=. Uma vez configurado, o bloco PostgreSQL no arquivo terá a seguinte aparência.

<!-- POSTGRESQL -->
<Resource name="jdbc/dotCMSPool" auth="Container"
      type="javax.sql.DataSource"
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
      driverClassName="org.postgresql.Driver"
      url="jdbc:postgresql://localhost/dotcms"
      username="dotcms" password="DBPassword" maxTotal="60" maxIdle="10" maxWaitMillis="60000"
      removeAbandonedOnBorrow="true" removeAbandonedOnMaintenance="true" removeAbandonedTimeout="60" logAbandoned="true"
      timeBetweenEvictionRunsMillis="30000" validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

Forneça a permissão de execução para todos os arquivos executáveis.

sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh

O DotCMS agora está instalado no seu servidor. Para executar o aplicativo imediatamente, execute o seguinte.

cd /opt/dotcms
sudo bin/startup.sh

Você verá a seguinte saída quando o servidor iniciar com êxito.

user@vultr:/opt/dotcms$ sudo bin/startup.sh
Using DOTCMS_HOME = /opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT
Using DOTSERVER = dotcms
Using CATALINA_PID = /tmp/dotcms.pid
Using JAVA_OPTS =  -Djava.awt.headless=true -Xverify:none -Dfile.encoding=UTF8 -server -XX:+DisableExplicitGC -XX:MaxMetaspaceSize=512m -Xmx1G -XX:+UseG1GC -javaagent:/opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT/WEB-INF/lib/byte-buddy-agent-1.6.12.jar -Ddotserver=dotcms
Using CATALINA_BASE:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_HOME:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_TMPDIR: /opt/dotcms/dotserver/tomcat-8.0.18/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/dotcms/dotserver/tomcat-8.0.18/bin/bootstrap.jar:/opt/dotcms/dotserver/tomcat-8.0.18/bin/tomcat-juli.jar
Using CATALINA_PID:    /tmp/dotcms.pid
Tomcat started.

O comando acima iniciará o servidor da web Tomcat para atender ao aplicativo na porta 8080.

Abra seu navegador favorito e navegue até http://192.168.0.1:8080. Você verá que o aplicativo está executando um site de demonstração. Se você não visualizar seu site, aguarde, pois a primeira inicialização do servidor dotCMS leva de cinco a dez minutos, à medida que grava dados no banco de dados PostgreSQL e cria o cache. Você também pode verificar os logs de inicialização.

tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log

Configurar o Systemd

O servidor dotCMS pode ser iniciado diretamente usando o script de inicialização fornecido no pacote do instalador. Por uma questão de conveniência, você deve configurar um arquivo de unidade Systemd para o servidor dotCMS. Isso garantirá que o servidor de aplicativos seja iniciado automaticamente na reinicialização e nas falhas do sistema.

Pare o servidor dotCMS em execução usando o script de encerramento.

sudo bin/shutdown.sh

Crie um usuário não privilegiado para executar o servidor dotCMS, por motivos de segurança.

sudo adduser --home /opt/dotcms -gecos "dotCMS User" --disabled-password --disabled-login dotcms

Forneça a propriedade dos arquivos para o usuário do dotCMS.

sudo chown -R dotcms:dotcms /opt/dotcms

Crie um novo serviço Systemd.

sudo nano /etc/systemd/system/dotcms.service

Preencher o arquivo.

[Unit]
Description=dotCMS service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/dotcms/bin/startup.sh
ExecStop=/opt/dotcms/bin/shutdown.sh
User=dotcms
Group=dotcms
Restart=always

[Install]
WantedBy=multi-user.target

Inicie o aplicativo e ative-o automaticamente no momento da inicialização.

sudo systemctl start dotcms
sudo systemctl enable dotcms

Verifique se o serviço está em execução.

sudo systemctl status dotcms

Configurar o proxy reverso

Por padrão, o servidor dotCMS escuta na porta 8080. Vamos configurar o Nginx como proxy reverso para que o aplicativo possa ser acessado através do padrão HTTP e das HTTPS portas. Também configuraremos o Nginx para usar o SSL gerado com o Let's Encrypt.

Instale o Nginx.

sudo apt -y install nginx

Inicie o Nginx e permita que ele inicie automaticamente no momento da inicialização.

sudo systemctl start nginx
sudo systemctl enable nginx

Adicione o repositório Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instale o Certbot, que é o aplicativo cliente do Let's Encrypt CA.

sudo apt -y install certbot

Nota: Para obter certificados da Let's Encrypt CA, o domínio para o qual os certificados devem ser gerados deve estar apontado para o servidor. Caso contrário, faça as alterações necessárias nos registros DNS do domínio e aguarde a propagação do DNS antes de fazer a solicitação de certificado novamente. O Certbot verifica a autoridade do domínio antes de fornecer os certificados.

Gere os certificados SSL.

sudo certbot certonly --webroot -w /var/www/html -d cms.example.com

É provável que os certificados gerados sejam armazenados /etc/letsencrypt/live/cms.example.com/. Os certificados Let's Encrypt expiram em 90 dias, portanto, é recomendável configurar a renovação automática dos certificados usando trabalhos Cron.

Abra o arquivo de tarefa cron.

sudo crontab -e

Adicione a seguinte linha no final do arquivo.

30 5 * * * /usr/bin/certbot renew --quiet

O trabalho cron acima será executado todos os dias às 05:30. Se o certificado estiver vencido, ele será renovado automaticamente.

Crie um novo arquivo de bloqueio de servidor para o site dotCMS.

sudo nano /etc/nginx/sites-available/dotcms

Preencher o arquivo.

server {
    listen 80;
    server_name cms.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name cms.example.com;

    ssl_certificate           /etc/letsencrypt/live/cms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/cms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/dotcms.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 https://cms.example.com;
    }
  }

Ative a configuração.

sudo ln -s /etc/nginx/sites-available/dotcms /etc/nginx/sites-enabled/dotcms

Reinicie o servidor da web Nginx para que as alterações tenham efeito.

sudo systemctl restart nginx

O aplicativo dotCMS agora está instalado no seu servidor para uso em produção. Acesse o painel administrativo no seguinte endereço.

https://cms.example.com/dotAdmin

Faça login usando a conta de administrador inicial [email protected] e a senha admin. Altere a senha padrão imediatamente após o login.

Parabéns, o sistema de gerenciamento de conteúdo dotCMS agora está instalado no seu servidor. Você pode modificar o site de demonstração ou começar a construir seu site a partir do zero.



Leave a Comment

Instalando o Fuel CMS no Ubuntu 16.04 LTS

Instalando o Fuel CMS no Ubuntu 16.04 LTS

Usando um sistema diferente? O Fuel CMS é um sistema de gerenciamento de conteúdo baseado em CodeIgniter. Seu código fonte está hospedado no GitHub. Este guia mostra como você pode

Como instalar o Couch CMS 2.0 em um VPS Debian 9 LAMP

Como instalar o Couch CMS 2.0 em um VPS Debian 9 LAMP

Usando um sistema diferente? O Couch CMS é um sistema de gerenciamento de conteúdo (CMS) simples e flexível, gratuito e de código aberto que permite que os web designers

Como instalar o WonderCMS no Fedora 29

Como instalar o WonderCMS no Fedora 29

Usando um sistema diferente? O WonderCMS é um CMS de arquivo simples, rápido e pequeno, de código aberto, escrito em PHP. O código fonte do WonderCMS está hospedado no Github. Este guia irá

Como instalar o Redaxscript 3.2 CMS em um Ubuntu 16.04 LAMP VPS

Como instalar o Redaxscript 3.2 CMS em um Ubuntu 16.04 LAMP VPS

Usando um sistema diferente? O Redaxscript 3.2 CMS é um sistema de gerenciamento de conteúdo (CMS) moderno e ultra leve, gratuito e de código aberto com foguete-fas

Como instalar o Neos CMS no Debian 9

Como instalar o Neos CMS no Debian 9

Usando um sistema diferente? Neos é uma plataforma de aplicativos de conteúdo com um CMS e uma estrutura de aplicativos em seu núcleo. Este guia mostra como instalar

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece

Como instalar o BoltWire CMS no CentOS 7

Como instalar o BoltWire CMS no CentOS 7

Usando um sistema diferente? Introdução O BoltWire é um sistema de gerenciamento de conteúdo gratuito e leve, escrito em PHP. Comparado com a maioria dos outros gerenciadores de conteúdo

Como instalar o BigTree CMS 4.2 em um CentOS 7 LAMP VPS

Como instalar o BigTree CMS 4.2 em um CentOS 7 LAMP VPS

Usando um sistema diferente? O BigTree CMS 4.2 é um sistema de gerenciamento de conteúdo (CMS) de nível empresarial, rápido e leve, gratuito e de código aberto, com uma extensa

Como instalar o Redaxscript 3.2 CMS em um CentOS 7 LAMP VPS

Como instalar o Redaxscript 3.2 CMS em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Redaxscript 3.2 CMS é um sistema de gerenciamento de conteúdo (CMS) moderno e ultra leve, gratuito e de código aberto com foguete-fas

Instalando o Bolt CMS no CentOS 7

Instalando o Bolt CMS no CentOS 7

Bolt é um CMS de código aberto escrito em PHP. O código fonte do Bolts está hospedado no GitHub. Este guia mostra como instalar o Bolt CMS em um novo CentOS 7 Vult

Como instalar o Automad CMS no CentOS 7

Como instalar o Automad CMS no CentOS 7

Usando um sistema diferente? Automad é um sistema de gerenciamento de conteúdo (CMS) baseado em arquivo de código aberto e um mecanismo de modelo escrito em PHP. O código-fonte Automad i

Como instalar o Directus 6.4 CMS em um FreeBSD 11 FAMP VPS

Como instalar o Directus 6.4 CMS em um FreeBSD 11 FAMP VPS

Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece

Como instalar o ProcessWire CMS 3.0 em um Ubuntu 16.04 LAMP VPS

Como instalar o ProcessWire CMS 3.0 em um Ubuntu 16.04 LAMP VPS

Usando um sistema diferente? O ProcessWire CMS 3.0 é um CMS (Content Management System) simples, flexível e poderoso, de código aberto e gratuito. ProcessWire CMS 3.

Como instalar o Anchor CMS em um CentOS 7 LAMP VPS

Como instalar o Anchor CMS em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Anchor CMS é um mecanismo de blog de sistema de gerenciamento de conteúdo (CMS) super simples e extremamente leve, gratuito e de código aberto que

Instalando o Anchor CMS no CentOS 7

Instalando o Anchor CMS no CentOS 7

Usando um sistema diferente? Anchor é um CMS de blog leve e de código aberto, escrito em PHP. O código-fonte Anchors está hospedado no GitHub. Este guia irá mostrar-lhe como

Instalando o Microweber no Ubuntu 16.04

Instalando o Microweber no Ubuntu 16.04

Usando um sistema diferente? Microweber é um software livre de arrastar e soltar CMS e loja online. O código-fonte da Microweber está hospedado no GitHub. Este guia irá mostrar-lhe

Instalando o Fork CMS no FreeBSD 12

Instalando o Fork CMS no FreeBSD 12

Usando um sistema diferente? Fork é um CMS de código aberto escrito em PHP. O código fonte do Forks está hospedado no GitHub. Este guia mostra como instalar o Fork CM

Como instalar o Thelia 2.3 no CentOS 7

Como instalar o Thelia 2.3 no CentOS 7

Usando um sistema diferente? O Thelia é uma ferramenta de código aberto para a criação de sites de comércio eletrônico e gerenciamento de conteúdo on-line, escrito em PHP. Código fonte Thelia i

Como instalar o ProcessWire CMS 3.0 em um VPS FAMP 26 LAMP

Como instalar o ProcessWire CMS 3.0 em um VPS FAMP 26 LAMP

Usando um sistema diferente? O ProcessWire CMS 3.0 é um CMS (Content Management System) simples, flexível e poderoso, de código aberto e gratuito. ProcessWire CMS 3.

Como instalar o Craft CMS no FreeBSD 12

Como instalar o Craft CMS no FreeBSD 12

Usando um sistema diferente? Introdução O Craft CMS é um CMS de código aberto escrito em PHP. O código-fonte do Craft CMS está hospedado no GitHub. Este guia irá mostrar-lhe

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.