Introducción
Buenas, en este post vamos a instalar OpenCMS en una máquina de nuestro cloud privado y posteriormente vamos a hacer su despliegue a través de apache2
y tomcat
usando un proxy inverso.
Instalación requisitos
Actualizamos el sistema:
sudo apt update && sudo apt upgrade -y
Instalamos los paquetes necesarios para desplegar la aplicación:
sudo apt install tomcat9 zip mariadb-server openjdk-11-jre
Configuración MariaDB
Entramos en mariadb como usuario root:
sudo mysql -u root -p
Cambiamos la contraseña:
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
Y creamos base de datos y usuario que vamos a usar para opencms:
> CREATE DATABASE opencms;
> CREATE USER 'user_open'@'localhost' IDENTIFIED BY 'pass_open';
> GRANT ALL PRIVILEGES ON opencms.* TO 'user_open'@'localhost';
> FLUSH PRIVILEGES;
Descarga de CMS y ubicación
Descargamos el cms de su página oficial y lo descomprimimos:
wget http://www.opencms.org/downloads/opencms/opencms-11.0.2.zip
unzip opencms-11.0.2.zip
Ahora tenemos que ubicar el fichero opencms.war
que se ha descomprimido en la siguiente ruta:
sudo cp opencms.war /var/lib/tomcat9/webapps/
cd /var/lib/tomcat9/webapps/
sudo rm -r ROOT
sudo mv opencms.war ROOT.war
sudo systemctl restart tomcat9
Instalación OpenCMS
Accedemos a la url para su instalación y aceptamos los términos:
Confirmamos que tenemos todos los prerequisitos:
Añadimos el usuario root y su contraseña root, y el usuario creado anteriormente, seleccionamos “Eliminar bd si existe”:
Dejamos los módulos por defecto que queremos que se instalen:
Añadimos la dirección MAC de nuestro equipo, la URL que tendrá y su nombre:
Y comenzará la instalación:
Una vez finalizada, pulsamos en continuar:
Y nos aparecerá el siguiente error:
Esto es debido a que tenemos que eliminar el setup de la instalación que hemos realizado, para ello:
sudo nano /etc/tomcat9/catalina.properties
Y añadimos la siguiente línea:
wizard.enabled = false
Reiniciamos tomcat:
sudo systemctl restart tomcat9
Ahora ya podremos acceder a la página principal de Opencms:
Apache2 y Tomcat9 (proxy inverso http)
Primero comprobamos si las líneas que definen el conector HTTP están en su fichero correspondiente:
sudo nano /etc/tomcat9/server.xml
Y tenemos que tener las siguientes, si no, las añadimos:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="utf8"
redirectPort="8443" />
Activamos el módulo que permite hacer el proxy inverso y reiniciamos apache:
sudo a2enmod proxy_http
sudo systemctl restart apache2
Ahora editamos el virtualhost por defecto de apache:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Y añadimos las siguientes líneas:
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
Reiniciamos apache:
sudo systemctl restart apache2
Y ya podremos acceder mediante el navegador sin tener que introducir el puerto 8080: