Cómo instalar dotCMS en CentOS 7

dotCMS es un sistema de gestión de contenido de nivel empresarial de código abierto escrito en Java. Contiene casi todas las funciones necesarias para crear un sitio web para su negocio. Proporciona una API RESTful para integrarse con otros servicios como CRM, aplicaciones móviles y más. Utiliza Elasticsearch para indexar en tiempo real el contenido y Redis para implementar caché de varios niveles.

Este artículo fue escrito para dotCMS 4.2.2, sin embargo, las instrucciones proporcionadas pueden funcionar también para versiones más recientes.

Prerrequisitos

  • Una instancia de servidor Vultr CentOS 7.
  • Un usuario de sudo .
  • Un nombre de dominio apuntado hacia el servidor.

Para este tutorial, lo utilizaremos 192.168.0.1como la dirección IP pública y cms.example.comcomo el nombre de dominio que apunta hacia la instancia de Vultr. Asegúrese de reemplazar todas las apariciones del nombre de dominio de ejemplo y la dirección IP pública por la actual.

Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema ha sido actualizado, proceda a instalar Java.

Instalar Java

OpenJDK se puede instalar fácilmente ya que el paquete está disponible en el repositorio predeterminado de YUM.

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

Si Java está instalado correctamente, podrá verificar su versión.

java -version

Obtendrá una salida similar.

[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 que podamos seguir adelante, tendremos que configurar los JAVA_HOMEy las JRE_HOMEvariables de entorno. Encuentre la ruta absoluta del ejecutable Java en su sistema.

readlink -f $(which java)

Verá una salida similar.

[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

Ahora, configure las variables de entorno JAVA_HOMEy de JRE_HOMEacuerdo con la ruta del directorio 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

Ejecuta el bash_profilearchivo.

source ~/.bash_profile

Ahora puede ejecutar el echo $JAVA_HOMEcomando para asegurarse de que la variable de entorno esté configurada.

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

Instalar PostgreSQL

Por defecto, dotCMS está configurado para usar el motor de base de datos H2. El motor de base de datos H2 es un motor de base de datos basado en archivos planos. No se recomienda su uso en producción. En este tutorial, utilizaremos el servidor PostgreSQL para almacenar la base de datos dotCMS.

PostgreSQL es un sistema de base de datos relacional de objetos y conocido por su estabilidad y velocidad. Agregue el repositorio de la última versión de PostgreSQL en el 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 el servidor de base de datos PostgreSQL.

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

Inicializar la base de datos.

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

Inicie el servidor PostgreSQL y permita que se inicie automáticamente en el momento del arranque.

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

Cambie la contraseña para el usuario predeterminado de PostgreSQL.

sudo passwd postgres

Inicie sesión como usuario predeterminado de PostgreSQL.

sudo su - postgres

Cree un nuevo usuario de PostgreSQL para dotCMS.

createuser dotcms 

PostgreSQL proporciona el psqlshell para ejecutar consultas en el servidor de bases de datos. Cambie al shell PostgreSQL.

psql

Establezca una contraseña para el usuario recién creado para la base de datos dotCMS.

ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';

Reemplace la contraseña del usuario de la base de datos DBPasswordcon una contraseña segura. Cree una nueva base de datos para la instalación de dotCMS.

CREATE DATABASE dotcms OWNER dotcms;

Salga de la psqlcáscara.

\q

Cambiar al sudousuario.

exit

Instalar dotCMS

Descargue el archivo dotCMS.

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

Siempre puede encontrar el enlace a la última versión de la aplicación en la página de descarga de dotCMS .

Cree un nuevo directorio para almacenar los archivos dotCMS y extráigalos en él.

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

Abra el archivo de configuración de la base de datos.

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

Encuentra el H2bloque.

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

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

Comente toda la H2sección reemplazando el delimitador de comentarios -->desde el comienzo de la sección hasta el final de la sección. Debería tener el siguiente aspecto.

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

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

Elimine el comentario de la sección PostgreSQL eliminando el delimitador de comentarios -->del final de la sección y colocándolo en la envoltura superior POSTGRESQL. Además, busque username=y password=reemplace los valores existentes con el nombre de usuario y la contraseña de su usuario de la base de datos PostgreSQL. Si ha utilizado un nombre de base de datos distinto de dotcms, deberá cambiar el nombre de la base de datos url=. Una vez configurado, el bloque PostgreSQL en el archivo debería tener el siguiente aspecto.

<!-- 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" />

Proporcione el permiso de ejecución para todos los archivos ejecutables.

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

dotCMS ahora está instalado en su servidor. Para ejecutar inmediatamente la aplicación, ejecute lo siguiente.

cd /opt/dotcms
sudo bin/startup.sh

Verá el siguiente resultado cuando el servidor se haya iniciado correctamente.

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

El comando anterior iniciará el servidor web Tomcat para servir la aplicación en el puerto 8080. Para verificar si el sitio web dotCMS funciona, permita el puerto requerido a 8080través del firewall del sistema.

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

Abra su navegador favorito y busque http://192.168.0.1:8080. Debería ver que la aplicación ejecuta un sitio web de demostración. Si no ve su sitio web, espere a que el primer inicio del servidor dotCMS demore un par de minutos mientras escribe datos en la base de datos PostgreSQL y crea el caché. También puede consultar los registros de inicio.

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

Configurar el servicio Systemd

El servidor dotCMS se puede iniciar directamente utilizando el script de inicio proporcionado en el paquete del instalador. Por conveniencia, debe configurar un archivo de unidad Systemd para el servidor dotCMS. Esto asegurará que el servidor de aplicaciones se inicie automáticamente al reiniciar el sistema y fallas.

Detenga el servidor dotCMS en ejecución utilizando el script de apagado.

sudo bin/shutdown.sh

Cree un usuario sin privilegios para ejecutar el servidor dotCMS, por razones de seguridad.

sudo adduser -d /opt/dotcms -s /sbin/nologin dotcms

Proporcionar la propiedad de los archivos al usuario dotCMS.

sudo chown -R dotcms:dotcms /opt/dotcms

Cree un nuevo servicio Systemd.

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

Rellene el archivo.

[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 la aplicación y permita que se inicie automáticamente en el momento del arranque.

sudo systemctl start dotcms
sudo systemctl enable dotcms

Asegúrese de que el servicio se esté ejecutando.

sudo systemctl status dotcms

Configurar el proxy inverso

Por defecto, el servidor dotCMS escucha en el puerto 8080. Configuraremos Nginx como el proxy inverso para que se pueda acceder a la aplicación a través de puertos HTTPy estándar HTTPS. También configuraremos Nginx para que use SSL generado con Let's Encrypt free SSL.

Instale el servidor web Nginx.

sudo yum -y install nginx

Inicie el servidor web y permita que se inicie automáticamente en el momento del arranque.

sudo systemctl start nginx
sudo systemctl enable nginx

Instale Certbot, que es una aplicación cliente para Let's Encrypt CA.

sudo yum -y install certbot

Antes de poder solicitar los certificados, deberá permitir los puertos 80y / 443o estándares HTTPy HTTPSservicios a través del firewall. Además, elimine el puerto 8080de la lista de excepciones de firewall ya que ya no es necesario.

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 obtener certificados de Let's Encrypt CA, el dominio para el que se generarán los certificados debe apuntar hacia el servidor. De lo contrario, realice los cambios necesarios en los registros DNS del dominio y espere a que se propague el DNS antes de volver a solicitar el certificado. Certbot verifica la autoridad del dominio antes de proporcionar los certificados.

Generar los certificados SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d cms.example.com

Es probable que los certificados generados se almacenen en /etc/letsencrypt/live/cms.example.com/. Encriptemos los certificados caducan en 90 días, por lo tanto, se recomienda configurar la renovación automática de los certificados utilizando trabajos Cron.

Abra el archivo de trabajo cron.

sudo crontab -e

Agregue la siguiente línea al final del archivo.

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

El trabajo cron anterior se ejecutará todos los días a las 5:30 a.m. Si el certificado vence, se renovará automáticamente.

Cree un nuevo archivo de bloqueo del servidor para el sitio dotCMS.

sudo nano /etc/nginx/conf.d/cms.example.com.conf

Rellene el archivo.

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 el servidor web Nginx para que los cambios surtan efecto.

sudo systemctl restart nginx

La aplicación dotCMS ahora está instalada en su servidor para uso de producción. Acceda al panel de control administrativo en la siguiente dirección.

https://cms.example.com/dotAdmin

Inicie sesión con la cuenta de administrador inicial [email protected]y admin. Cambie la contraseña predeterminada inmediatamente después de iniciar sesión.

Felicitaciones, el sistema de gestión de contenido dotCMS ahora está instalado en su servidor. Puede modificar el sitio de demostración o puede comenzar a construir su sitio desde cero.



Leave a Comment

Cómo instalar Thelia 2.3 en CentOS 7

Cómo instalar Thelia 2.3 en CentOS 7

¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i

Instalación de Fuel CMS en Ubuntu 16.04 LTS

Instalación de Fuel CMS en Ubuntu 16.04 LTS

¿Usando un sistema diferente? Fuel CMS es un sistema de gestión de contenido basado en CodeIgniter. Su código fuente está alojado en GitHub. Esta guía le mostrará cómo t

Cómo instalar Couch CMS 2.0 en un VPS LAMP Debian 9

Cómo instalar Couch CMS 2.0 en un VPS LAMP Debian 9

¿Usando un sistema diferente? Couch CMS es un sistema de gestión de contenido (CMS) simple y flexible, gratuito y de código abierto que permite a los diseñadores web diseñar

Cómo instalar MODX CMS y Nginx en CentOS 7

Cómo instalar MODX CMS y Nginx en CentOS 7

MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i

How to Install Alfresco Community Edition on Ubuntu 16.04

How to Install Alfresco Community Edition on Ubuntu 16.04

Using a Different System? Alfresco Community Edition is an open source version of the Alfresco Content Services. It is written in Java and uses PostgreSQL t

How to Install WonderCMS on Fedora 29

How to Install WonderCMS on Fedora 29

Using a Different System? WonderCMS is an open source, fast and small flat file CMS written in PHP. WonderCMS source code is hosted on Github. This guide wil

How to Install Redaxscript 3.2 CMS on an Ubuntu 16.04 LAMP VPS

How to Install Redaxscript 3.2 CMS on an Ubuntu 16.04 LAMP VPS

Using a Different System? Redaxscript 3.2 CMS is a modern and ultra lightweight, free and open source Content Management System (CMS) with rocket-fas

How to Install Neos CMS on Debian 9

How to Install Neos CMS on Debian 9

Using a Different System? Neos is a Content Application Platform with a CMS and an application framework at its core. This guide will show you how to instal

Cómo instalar el CMS de octubre 1.0 en un VPS LAMP Fedora 26

Cómo instalar el CMS de octubre 1.0 en un VPS LAMP Fedora 26

¿Usando un sistema diferente? October 1.0 CMS es un sistema de gestión de contenido (CMS) simple y confiable, gratuito y de código abierto creado en el marco de Laravel

Cómo instalar Directus 6.4 CMS en un CentOS 7 LAMP VPS

Cómo instalar Directus 6.4 CMS en un CentOS 7 LAMP VPS

¿Usando un sistema diferente? Directus 6.4 CMS es un sistema de gestión de contenido sin cabeza (CMS) potente y flexible, gratuito y de código abierto que proporciona al desarrollador

How to Install BoltWire CMS on CentOS 7

How to Install BoltWire CMS on CentOS 7

Using a Different System? Introduction BoltWire is a free and lightweight content management system written in PHP. Compared to most other content managemen

Instalación de Bolt CMS en CentOS 7

Instalación de Bolt CMS en CentOS 7

Bolt es un CMS de código abierto escrito en PHP. El código fuente de Bolts está alojado en GitHub. Esta guía le mostrará cómo instalar Bolt CMS en un nuevo CentOS 7 Vult

How to Install Redaxscript 3.2 CMS on a Fedora 26 LAMP VPS

How to Install Redaxscript 3.2 CMS on a Fedora 26 LAMP VPS

Using a Different System? Redaxscript 3.2 CMS is a modern and ultra lightweight, free and open source Content Management System (CMS) with rocket-fas

Instalación de Anchor CMS en CentOS 7

Instalación de Anchor CMS en CentOS 7

¿Usando un sistema diferente? Anchor es un blog ligero de código abierto CMS escrito en PHP. El código fuente de Anchors está alojado en GitHub. Esta guía te mostrará ho

Cómo instalar Couch CMS 2.0 en un CentOS 7 LAMP VPS

Cómo instalar Couch CMS 2.0 en un CentOS 7 LAMP VPS

¿Usando un sistema diferente? Couch CMS es un sistema de gestión de contenido (CMS) simple y flexible, gratuito y de código abierto que permite a los diseñadores web diseñar

Installing Microweber on Ubuntu 16.04

Installing Microweber on Ubuntu 16.04

Using a Different System? Microweber is an open source drag and drop CMS and online shop. Microweber source code is hosted on GitHub. This guide will show yo

Installing Fork CMS on FreeBSD 12

Installing Fork CMS on FreeBSD 12

Using a Different System? Fork is an open source CMS written in PHP. Forks source code is hosted on GitHub. This guide will show you how to install Fork CM

Cómo instalar ImpressPages CMS 5.0 en un Fedora 26 LAMP VPS

Cómo instalar ImpressPages CMS 5.0 en un Fedora 26 LAMP VPS

¿Usando un sistema diferente? ImpressPages CMS 5.0 es un sistema de gestión de contenido (CMS) simple y efectivo, gratuito y de código abierto, fácil de usar y basado en MVC

Cómo instalar Pagekit 1.0 CMS en un Fedora 26 LAMP VPS

Cómo instalar Pagekit 1.0 CMS en un Fedora 26 LAMP VPS

¿Usando un sistema diferente? Pagekit 1.0 CMS es un sistema de administración de contenido (CMS) hermoso, modular, extensible y liviano, gratuito y de código abierto con

Cómo instalar ProcessWire CMS 3.0 en un Fedora 26 LAMP VPS

Cómo instalar ProcessWire CMS 3.0 en un Fedora 26 LAMP VPS

¿Usando un sistema diferente? ProcessWire CMS 3.0 es un sistema de gestión de contenido (CMS) simple, flexible y potente, gratuito y de código abierto. ProcessWire CMS 3.

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.