Como instalar o dotCMS no CentOS 7

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 integrar 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 o cache de várias camadas.

Este artigo foi escrito para o dotCMS 4.2.2, no entanto, as instruções fornecidas também podem funcionar para versões mais recentes.

Pré-requisitos

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

Neste tutorial, usaremos 192.168.0.1como endereço IP público e cms.example.comcomo 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 básico usando o guia Como atualizar o CentOS 7 . Depois que seu sistema for atualizado, continue com a instalação do Java.

Instale Java

O OpenJDK pode ser facilmente instalado, pois o pacote está disponível no repositório YUM padrão.

sudo yum -y install java-1.8.0-openjdk-devel

Se o Java estiver instalado corretamente, você poderá verificar sua versão.

java -version

Você obterá uma saída semelhante.

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

Antes de prosseguirmos, precisaremos configurar as variáveis ​​de ambiente JAVA_HOMEe JRE_HOME. Encontre o caminho absoluto do executável Java no seu sistema.

readlink -f $(which java)

Você verá uma saída semelhante.

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/bin/java

Agora, configure as variáveis ​​de ambiente JAVA_HOMEe de JRE_HOMEacordo com o caminho do diretório Java.

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre" >> ~/.bash_profile

Execute o bash_profilearquivo

source ~/.bash_profile

Agora você pode executar o echo $JAVA_HOMEcomando para garantir que a variável de ambiente esteja configurada.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

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 e conhecido por sua estabilidade e velocidade. Adicione o repositório da versão mais recente do PostgreSQL ao sistema.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

Instale o servidor de banco de dados PostgreSQL.

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

Inicialize o banco de dados.

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

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

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

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

sudo passwd postgres

Efetue login como usuário padrão do PostgreSQL.

sudo su - postgres

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

createuser dotcms 

O PostgreSQL fornece o psqlshell 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 DBPasswordpor uma senha segura. Crie um novo banco de dados para a instalação do dotCMS.

CREATE DATABASE dotcms OWNER dotcms;

Saia do psqlshell.

\q

Mude para o sudousuário.

exit

Instale o dotCMS

Faça o download do arquivo dotCMS.

wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.2.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 H2bloco.

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

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

Comente a H2seção inteira substituindo o delimitador de comentários -->do início da seção até 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 deve se parecer com o seguinte.

<!-- 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 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:        /
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. Para verificar se o site do dotCMS está funcionando, permita a porta necessária 8080através do firewall do sistema.

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

Abra seu navegador favorito e navegue até http://192.168.0.1:8080. Você deve ver que o aplicativo está executando um site de demonstração. Se você não vê o seu site, aguarde, pois a primeira inicialização do servidor dotCMS leva alguns minutos, enquanto 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 serviç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 -d /opt/dotcms -s /sbin/nologin 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 via padrão HTTPe HTTPSportas. Também configuraremos o Nginx para usar SSL gerado com o SSL gratuito Let's Encrypt.

Instale o servidor da web Nginx.

sudo yum -y install nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

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

sudo yum -y install certbot

Antes de poder solicitar os certificados, será necessário permitir as portas 80e / 443ou os serviços HTTPe padrão HTTPSatravés do firewall. Além disso, remova a porta 8080da lista de exceções do firewall, pois ela não é mais necessária.

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

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 /usr/share/nginx/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/conf.d/cms.example.com.conf

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;
    }
  }

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 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.