Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

viernes, 11 de diciembre de 2020

Como publicar mi proyecto Java EE en internet




Este 2021 inicio con un proyecto personal, para ello he desarrollado mi aplicación Java EE tomando como base Shopizer, y llegado la hora de publicarlo a internet me he encontrado con desafíos, le he dedicado muchas horas a investigar, por ello en esta entrada documento todo.

Conceptos que aprendí

Sitio Web, Aplicación Web, Hosting, Servidor en la nube (cloud), Servidor VPS, 

Esta entrada trata sobre

Preparar un servidor virtual para desplegar aplicaciones Java EE y hacerlo accesible a Internet con un presupuesto de 50USD anual.

Lo primero que hice fue comprar el dominio, este lo compré en GoDaddy, no tuve mayores problemas. Luego voy por el Hosting, y aquí me encontré con muchas confusiones, probé con Wordpress para luego enterarme que Wordpress es un Hosting + CMS, algo que definitivamente no me sirve, yo solo tenía acceso a la aplicación CMS, olvídate de tener un MySQL, Wildfly y Apache.

Investigando descubrí que generalmente un Hosting es un ambiente preconfigurado para subir un sitio web y no una aplicación web. La mayoría de los Hosting vienen con un conjunto de software pre instalado y configurado para sitios web PHP.

Seguí investigando y encontré que lo que yo buscaba era un servidor web en la nube, en realidad podría tener mi propio servidor web en el departamento pero al hacer cálculos de costes no es muy conveniente que digamos. 

Siguiendo con la historia, encontré un servidor en la nube muy bueno, viene pre configurado para la tecnología Java, Red Hat Openshift, ya viene instalado MySQL, Java, Tomcat o Wildfly. El problema es el costo, 50 USD mensual, estamos hablando de 600 USD anual. y pues se sale de mi presupuesto, mi presupuesto es de 50 USD anual. Jajajaja.

Seguí investigando y encontré que hay un servidor en la nube virtual, sin nada pre instalado mas que solo el SO, y el costo es de un poco menos de 50 USD anual. Estos son los conocidos Servidor VPS. Por ahora me encuentro en Chile así que elegí a mi proveedor https://www.hosty.cl/cloud-vps/

Una segunda buena opción erá https://www.digitalocean.com/products/droplets/ pero ligeramente más caro, 20 USD aprox más que hosty. Por el precio lo descarté, quizás en el futuro.

Una tercera opción que no me convence del todo es https://www.hostignition.com/index.php?page=jsp-servlets, no me terminar de convencer ya que viene pre configurado con Tomcat y sospecho no se puede instalar Wildfly, pero igual debería darle una revisada.

Conectarte al Servidor VPS

Un servidor VPS es como cualquier servidor, solo que está en la nube, en internet, tiene su SO, en mi caso elegí Ubuntu Server 18, y para acceder a el lo haces mediante un cliente SSH Putty. El proveedor te da la dirección IP, el puerto, y la contraseña del usuario root  la cual puedes cambiar  mas adelante. De entrada Putty no me pareció muy amigable, cuando llegué al login en ingresaba el password de mi usuario Linux, en la consola, el promt no dibuja los caracteres ingresados, por fortuna puedes copiar y pegar el password haciendo click derecho sobre la consola.

Instalando MySQL

Para instalar MySQL ejecutar el siguiente comando Ubuntu

sudo apt install mysql-server

Para verificar si el servicio de MySQL esta ejecutándose correctamente ejecutar el siguiente comando

sudo netstat -tap | grep mysql

Y deberías ver la siguiente salida

tcp        0      0 localhost:mysql         0.0.0.0:*               LISTEN                              6874/mysqld

En caso de que el servicio no esté corriendo puedes iniciarlo ejecutando el siguiente comando

sudo systemctl restart mysql.service

Instalando Java

He decidido instalar OpenJDK ya que es la opción mas sencilla, para instalar, ejecutar los siguientes comandos.

sudo apt update

sudo apt install default-jdk

Instalando Apache Tomcat

Decidí instalar Apache Tomcat en lugar de Wildfly, la razón principal es porque no voy a usar EJB, aquí puedes leer una entrada exclusiva para saber como instalar Tomcat. ¿Cómo instalar Apache Tomcat en un servidor VPS Linux? 

Configurando el nombre del dominio web en Apache Tomcat

Para mostrar tu aplicación web cuando el usuario ingrese en su navegador el nombre de tu dominio deberás configurar el dominio en Apache Tomcat, aquí puedes leer una entrada exclusiva para saber como configurarlo. ¿Cómo configurar el nombre del dominio web en Apache Tomcat?

Configurando nuestro dominio

Pronto...

Seguridad

Pronto...

Y bueno... aun me queda mucho trabajo por hacer, instalar MySQL, Java, Wildfly, Apache Web, y configurar Wildfly con Apache Web.

Seguiré documentando...




viernes, 24 de febrero de 2017

Instalar Oracle Java JDK8 en Ubuntu 16.04

Introducción

Me ausente de Linux por un periodo de 5 años, hoy regreso y lo encuentro mucho más guapo, he decidido volver. Como fanático de la programación lo primero que haré será instalar Java + Netbeans. Ubuntu por defecto viene con OpenJDK, en el pasado tuve malas experiencias con OpenJDK, prefiero instalar el JDK de Oracle.

Paso 1. Verificar que JDK tenemos

La instalación de Ubuntu que tengo no viene instalado con el OpenJDK, para ver si tenemos alguna versión instalada ejecutamos lo siguiente:














En caso de tener instalado el OpenJDK, hay que desinstalarlo, para hacerlo seguir este tutorial


Paso 2. Agregamos el repositorio de Java a nuestra lista de fuentes


Agregamos el repositorio a nuestra lista de fuentes, ejecutar el siguiente comando:















Nos pide confirmación para continuar, presionar enter para continuar














Si todo va bien veremos esta última pantalla













Paso 3. Actualizamos nuestra lista de fuentes

Para actualizar nuestra lista de fuentes ejecutamos lo siguiente:










Al terminar veremos la siguiente pantalla

















Paso 4. Instalar Java JDK 8

Ejecutamos el siguiente comando







Nos pedirá confirmación, presionar Y y luego enter













Nos advierte que debemos aceptar la Licencia















Aceptamos la Licencia













Esperamos unos minutos y al terminar muestra la siguiente pantalla














Tomar nota del mensaje con el titulo "important", para no tener ningún conflicto vamos a instalar lo que nos pide







Al finalizar veremos la siguiente pantalla













Reiniciamos el equipo y comprobamos la instalación, ejecutamos los siguientes dos comando














Así hemos finalizado con éxito la instalación de Oracle Java JDK 8 en Ubuntu 16.04

domingo, 11 de septiembre de 2011

Las Variables de Entorno en Ubuntu

¿Que son?
Una variable de entorno es una variable el cual contiene un nombre, un valor, pueden ser declararas o eliminadas. En Ubuntu, pueden estar disponibles para cierto usuario, para todos los usuarios o para un grupo en especifico, pueden ser temporales o permanentes.

Las variables de entorno influyen en el comportamiento del software en el sistema. Por ejemplo la variable de entorno "LANG" determina el idioma en el que los programas de software se presentaran al usuario(etiquetas, titulos de botones, mensajes de error, etc,.).

Normalmente el significado y el formato del valor de una variable de entorno es interpretado por la aplicacion que ha de usarlo. Incluso entre varias aplicaciones se puede llegar a un acuerdo sobre el formato y significado del valor de ciertas variables de entorno.


Las variables PATH y CLASSPATH son ejemplos de variables de entornos muy usadas. La variable PATH tiene como contenido una cadena que contiene rutas de directorios, por ejemplo la ruta donde se encuentra el compilador de java. Para agregar mas directorios a esta variable es necesario separarlas con :
La variable CLASSPATH tiene una funcion parecida al PATH, en ella se definen directorios, librerias (.jar u otros) que nuestra programa en java vaya a usar, al igual que el PATH si son varios directorios estos se separan con un .

Definición de una variable de entorno.
Para definir una variable abrimos nuestra consola y la definimos de la siguiente manera.

usuario@Linux:~$ nombreUno=”Esta es una variable de entorno”

Podemos concatenarla con otra variable.

usuario@Linux:~$ nombreUno= $otraVariable:”Esta es una variable de entorno”

Una vez definida la variable es necesario exportarla al entorno.

El comando export.
Para que una variable de entorno este disponible se dice que hay que exportarla a nuestro entorno. El comando export es el indicado, su sintaxis es la siguiente y la ejecutamos en la misma terminal despues de definir.

usuario@Linux:~$ export nombreVariable

Tanto la exportación cómo la definición pueden hacerse en un mismo paso.


usuario@Linux:~$ export variableDos=”2”

Incluso se pueden exportar más de una variable a la vez.

usuario@Linux:~$ export variableTres=”Tres” variableCuatro=”Four"
Variables de Entorno persistentes.
Como dije anteriormente hay variables de entorno temporales y permanentes. En ocasiones se requiere que el valor de cierta variable de entorno quede guardado aun despues de cerrar sesion, es decir guardarlo en el disco duro.

Variables de Entorno ligados a un usuario en particular.
Si queremos que ciertas variables de entorno solo esten disponibles para cierto usuario cada que este inicie session, entonces debemos colocar las sentencias de exportación  para que estas variables sean exportadas a nuestro entorno como variables temporales cada que se inicia session, las sentencias se colocan en el archivo oculto bashrc que se localiza en el directorio home de nuestro usuario, este archivo ademas de definir variables de entorno nos permite guardar distintas configuraciones .

Algunos ejemplos:

export PATH=$PATH:"/home/automaton/netbeans-7.0.1/bin"
export PATH=$PATH:~/bin
export SUDO_PASSWORD=roberto10
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export CATALINA_HOME=/usr/share/tomcat6
export CATALINA_OPTS="-server -Djava.awt.headless=true -Xms384M -Xmx1536M -XX:MaxPermSize=256M"