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 admin@dotcms.comy 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.

Dejar un comentario

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.